diff --git a/.gitignore b/.gitignore index 1fe4b4f12..fda3654d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *.iml .gradle /local.properties -/.idea/ -/build +.idea/ +/build \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 0fa1f5670..471660067 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 1682655a2..ccbc5c99a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'android-apt' android { compileSdkVersion 24 @@ -10,10 +11,6 @@ android { targetSdkVersion 24 versionCode 3 versionName "v4" - - jackOptions { - enabled true - } } buildTypes { release { @@ -24,6 +21,11 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + compile fileTree(include: ['*.jar'], dir: 'libs') compile project(':lib:RootCommands') + compile 'com.android.support:recyclerview-v7:24.2.0' + compile 'com.android.support:cardview-v7:24.2.0' + compile 'com.android.support:design:24.2.0' + compile 'com.jakewharton:butterknife:8.2.1' + apt 'com.jakewharton:butterknife-compiler:8.2.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3c51b779..c5d0b66b3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,7 +15,12 @@ - + + + + + + diff --git a/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java b/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java new file mode 100644 index 000000000..3532d1505 --- /dev/null +++ b/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java @@ -0,0 +1,121 @@ +package com.topjohnwu.magisk; + +import android.os.Bundle; +import android.os.Handler; +import android.support.annotation.NonNull; +import android.support.design.widget.NavigationView; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.MenuItem; +import android.view.View; + +import com.topjohnwu.magisk.ui.LogFragment; +import com.topjohnwu.magisk.ui.ModulesFragment; +import com.topjohnwu.magisk.ui.RootFragment; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class WelcomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + + private static final String SELECTED_ITEM_ID = "SELECTED_ITEM_ID"; + private final Handler mDrawerHandler = new Handler(); + + @BindView(R.id.toolbar) Toolbar toolbar; + @BindView(R.id.drawer_layout) DrawerLayout drawer; + @BindView(R.id.nav_view) NavigationView navigationView; + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_welcome); + ButterKnife.bind(this); + + setSupportActionBar(toolbar); + + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) { + @Override + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + super.onDrawerSlide(drawerView, 0); // this disables the arrow @ completed state + } + + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + super.onDrawerSlide(drawerView, 0); // this disables the animation + } + }; + + drawer.setDrawerListener(toggle); + toggle.syncState(); + + navigationView.setNavigationItemSelectedListener(this); + + if (savedInstanceState != null) { + mDrawerHandler.removeCallbacksAndMessages(null); + mDrawerHandler.postDelayed(new Runnable() { + @Override + public void run() { + navigate(savedInstanceState.getInt(SELECTED_ITEM_ID)); + } + }, 250); + } + + } + + @Override + public void onBackPressed() { + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) { + menuItem.setChecked(true); + mDrawerHandler.removeCallbacksAndMessages(null); + mDrawerHandler.postDelayed(new Runnable() { + @Override + public void run() { + navigate(menuItem.getItemId()); + } + }, 250); + + drawer.closeDrawer(GravityCompat.START); + return true; + } + + private void navigate(final int itemId) { + Fragment navFragment = null; + switch (itemId) { + case R.id.root: + setTitle(R.string.root); + navFragment = new RootFragment(); + break; + case R.id.modules: + setTitle(R.string.modules); + navFragment = new ModulesFragment(); + break; + case R.id.log: + setTitle(R.string.log); + navFragment = new LogFragment(); + break; + } + + if (navFragment != null) { + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); + try { + transaction.replace(R.id.content_frame, navFragment).commit(); + } catch (IllegalStateException ignored) { + } + } + } +} diff --git a/app/src/main/java/com/topjohnwu/magisk/model/Module.java b/app/src/main/java/com/topjohnwu/magisk/model/Module.java index 657354e8a..3958c79ca 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/Module.java +++ b/app/src/main/java/com/topjohnwu/magisk/model/Module.java @@ -12,7 +12,6 @@ public class Module { private String mName; private String mVersion; - private int mVersionCode; private String mDescription; public Module(File file) { @@ -36,10 +35,6 @@ public class Module { return mName; } - public int getVersionCode() { - return mVersionCode; - } - public String getVersion() { return mVersion; } @@ -70,9 +65,6 @@ public class Module { case "version": mVersion = value; break; - case "versionCode": - mVersionCode = Integer.parseInt(value); - break; case "description": mDescription = value; break; diff --git a/app/src/main/java/com/topjohnwu/magisk/rv/ModulesAdapter.java b/app/src/main/java/com/topjohnwu/magisk/rv/ModulesAdapter.java index 1afd95794..1ad675623 100644 --- a/app/src/main/java/com/topjohnwu/magisk/rv/ModulesAdapter.java +++ b/app/src/main/java/com/topjohnwu/magisk/rv/ModulesAdapter.java @@ -1,11 +1,9 @@ package com.topjohnwu.magisk.rv; -import android.annotation.SuppressLint; -import android.content.Context; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ArrayAdapter; import android.widget.TextView; import com.topjohnwu.magisk.R; @@ -13,48 +11,60 @@ import com.topjohnwu.magisk.model.Module; import java.util.List; -public class ModulesAdapter extends ArrayAdapter { +import butterknife.BindView; +import butterknife.ButterKnife; - public ModulesAdapter(Context context, int resource, List modules) { - super(context, resource, modules); +public class ModulesAdapter extends RecyclerView.Adapter { + + private final List mList; + + public ModulesAdapter(List mList) { + this.mList = mList; } - @SuppressLint("SetTextI18n") @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder vh; + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false); +/*FIXME + final ViewHolder viewHolder = new ViewHolder(view); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + listener.onItemClick(viewHolder.getAdapterPosition()); + } + });*/ - if (convertView == null) { - LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - convertView = inflater.inflate(R.layout.row, null); - - vh = new ViewHolder(); - vh.name = (TextView) convertView.findViewById(R.id.name); - vh.version = (TextView) convertView.findViewById(R.id.version); - vh.versionCode = (TextView) convertView.findViewById(R.id.versionCode); - vh.description = (TextView) convertView.findViewById(R.id.description); - vh.cache = (TextView) convertView.findViewById(R.id.cache); - - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - Module module = getItem(position); - vh.name.setText("name= " + module.getName()); - vh.version.setText("version= " + module.getVersion()); - vh.versionCode.setText("versioncode= " + module.getVersionCode()); - vh.description.setText("description= " + module.getDescription()); - vh.cache.setText("is from cache= " + module.isCache()); - - return convertView; + return new ViewHolder(view); } - static class ViewHolder { - public TextView name; - public TextView version; - public TextView versionCode; - public TextView description; - public TextView cache; + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + Module module = mList.get(position); + + holder.title.setText(module.getName()); + holder.versionName.setText(module.getVersion()); + holder.description.setText(module.getDescription()); + + //FIXME + + //holder.cache.setText("" + module.isCache()); + } + + @Override + public int getItemCount() { + return mList.size(); + } + + static class ViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.title) TextView title; + @BindView(R.id.version_name) TextView versionName; + @BindView(R.id.description) TextView description; + //@BindView(R.id.cache) TextView cache; + + public ViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } } } \ No newline at end of file diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java b/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java new file mode 100644 index 000000000..d1b9fa221 --- /dev/null +++ b/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java @@ -0,0 +1,5 @@ +package com.topjohnwu.magisk.ui; + +public class LogFragment extends android.support.v4.app.Fragment { +// private static final String MAGISK_LOG = "/cache/magisk.log"; +} diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.java b/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.java index 0a6b834a9..78e415df9 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.java @@ -1,9 +1,9 @@ package com.topjohnwu.magisk.ui; import android.app.Activity; -import android.content.Intent; import android.graphics.Color; import android.os.Bundle; +import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; @@ -35,17 +35,23 @@ public class MainActivity extends Activity { suPath = executeCommand("getprop magisk.supath"); updateStatus(); - rootToggle.setOnCheckedChangeListener((view, checked) -> { - executeCommand(checked ? "setprop magisk.root 1" : "setprop magisk.root 0"); - updateStatus(); + rootToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean b) { + executeCommand(b ? "setprop magisk.root 1" : "setprop magisk.root 0"); + updateStatus(); + } }); - selinuxToggle.setOnCheckedChangeListener((view, checked) -> { - executeCommand(checked ? "setenforce 1" : "setenforce 0"); - updateStatus(); + selinuxToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean b) { + executeCommand(b ? "setenforce 1" : "setenforce 0"); + updateStatus(); + } }); - findViewById(R.id.modules).setOnClickListener(view -> startActivity(new Intent(this, ModulesActivity.class))); + //findViewById(R.id.modules).setOnClickListener(view -> startActivity(new Intent(this, ModulesActivity.class))); } private void updateStatus() { diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/ModulesActivity.java b/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java similarity index 58% rename from app/src/main/java/com/topjohnwu/magisk/ui/ModulesActivity.java rename to app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java index b6dca6580..2ec235119 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/ModulesActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java @@ -1,35 +1,45 @@ package com.topjohnwu.magisk.ui; -import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; -import android.widget.ListView; +import android.support.annotation.Nullable; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import com.topjohnwu.magisk.R; import com.topjohnwu.magisk.model.Module; import com.topjohnwu.magisk.rv.ModulesAdapter; +import com.topjohnwu.magisk.ui.utils.Utils; import java.io.File; +import java.io.FileFilter; import java.util.ArrayList; import java.util.List; -public class ModulesActivity extends Activity { +import butterknife.BindView; +import butterknife.ButterKnife; + +public class ModulesFragment extends android.support.v4.app.Fragment { private static final String MAGISK_PATH = "/magisk"; private static final String MAGISK_CACHE_PATH = "/cache/magisk"; + @BindView(R.id.recyclerView) RecyclerView recyclerView; + private List listModules = new ArrayList<>(); - private ListView mListView; + @Nullable @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_modules); - - mListView = (ListView) findViewById(android.R.id.list); + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.modules_fragment, container, false); + ButterKnife.bind(this, v); new CheckFolders().execute(); + + return v; } private class CheckFolders extends AsyncTask { @@ -40,13 +50,26 @@ public class ModulesActivity extends Activity { protected void onPreExecute() { super.onPreExecute(); - progress = ProgressDialog.show(ModulesActivity.this, null, getString(R.string.loading), true, false); + progress = ProgressDialog.show(getContext(), null, getString(R.string.loading), true, false); } @Override protected Boolean doInBackground(Void... voids) { - File[] magisk = new File(MAGISK_PATH).listFiles(File::isDirectory); - File[] magiskCache = new File(MAGISK_CACHE_PATH).listFiles(File::isDirectory); + File[] magisk = new File(MAGISK_PATH).listFiles(new FileFilter() { + @Override + public boolean accept(File file) { + return file.isDirectory(); + } + }); + + Utils.executeCommand("chmod 777 /cache"); + + File[] magiskCache = new File(MAGISK_CACHE_PATH).listFiles(new FileFilter() { + @Override + public boolean accept(File file) { + return file.isDirectory(); + } + }); if (magisk != null) { for (File mod : magisk) { @@ -83,7 +106,7 @@ public class ModulesActivity extends Activity { progress.dismiss(); - mListView.setAdapter(new ModulesAdapter(ModulesActivity.this, R.layout.row, listModules)); + recyclerView.setAdapter(new ModulesAdapter(listModules)); } } diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/RootFragment.java b/app/src/main/java/com/topjohnwu/magisk/ui/RootFragment.java new file mode 100644 index 000000000..14608b94a --- /dev/null +++ b/app/src/main/java/com/topjohnwu/magisk/ui/RootFragment.java @@ -0,0 +1,4 @@ +package com.topjohnwu.magisk.ui; + +public class RootFragment extends android.support.v4.app.Fragment { +} diff --git a/app/src/main/res/anim/fade_in.xml b/app/src/main/res/anim/fade_in.xml new file mode 100644 index 000000000..f1d8eed54 --- /dev/null +++ b/app/src/main/res/anim/fade_in.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/fade_out.xml b/app/src/main/res/anim/fade_out.xml new file mode 100644 index 000000000..a5f9254e1 --- /dev/null +++ b/app/src/main/res/anim/fade_out.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/ic_bug_report.xml b/app/src/main/res/drawable-anydpi/ic_bug_report.xml new file mode 100644 index 000000000..0ac39ddc1 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_bug_report.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-anydpi/ic_extension.xml b/app/src/main/res/drawable-anydpi/ic_extension.xml new file mode 100644 index 000000000..80d25de23 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_extension.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/root.xml b/app/src/main/res/drawable/root.xml new file mode 100644 index 000000000..bca20e4d8 --- /dev/null +++ b/app/src/main/res/drawable/root.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml new file mode 100644 index 000000000..b4f712cbc --- /dev/null +++ b/app/src/main/res/layout/activity_welcome.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/modules_fragment.xml b/app/src/main/res/layout/modules_fragment.xml new file mode 100644 index 000000000..1495adf5c --- /dev/null +++ b/app/src/main/res/layout/modules_fragment.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row.xml b/app/src/main/res/layout/row.xml index f4f85bda6..bb11a9346 100644 --- a/app/src/main/res/layout/row.xml +++ b/app/src/main/res/layout/row.xml @@ -1,32 +1,80 @@ - + - + - + - + - + - + - \ No newline at end of file + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/drawer.xml b/app/src/main/res/menu/drawer.xml new file mode 100644 index 000000000..dd1f2bf55 --- /dev/null +++ b/app/src/main/res/menu/drawer.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 9ad7e369a..63eda8419 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,13 @@ - #3f51b5 - #303F9F - #FF4081 + + #009688 + #00796B + #B2DFDB + #FFC107 + #212121 + #757575 + #FFFFFF + #BDBDBD + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 26c92bc60..969b5bd76 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,4 +19,13 @@ Magisk v%1$s Samsung do not support switching SELinux status! Loading... + WelcomeActivity + + Open navigation drawer + Close navigation drawer + + Settings + Root + Modules + Log diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1e7a95eb8..a639011f3 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,6 +1,24 @@ - + + diff --git a/build.gradle b/build.gradle index 77ce66ea3..4ec4cf5f1 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,11 @@ buildscript { repositories { jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.1.3' + classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Remounter.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Remounter.java index f575e0dd1..8f20a5608 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Remounter.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Remounter.java @@ -17,8 +17,9 @@ package org.sufficientlysecure.rootcommands; +import android.util.Log; + import org.sufficientlysecure.rootcommands.command.SimpleCommand; -import org.sufficientlysecure.rootcommands.util.Log; import java.io.File; import java.io.FileReader; diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/RootCommands.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/RootCommands.java index 67e583757..a4036e20a 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/RootCommands.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/RootCommands.java @@ -16,7 +16,7 @@ package org.sufficientlysecure.rootcommands; -import org.sufficientlysecure.rootcommands.util.Log; +import android.util.Log; public class RootCommands { public static final String TAG = "RootCommands"; diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Shell.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Shell.java index 74aa0bfe3..88a65537c 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Shell.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Shell.java @@ -17,8 +17,9 @@ package org.sufficientlysecure.rootcommands; +import android.util.Log; + import org.sufficientlysecure.rootcommands.command.Command; -import org.sufficientlysecure.rootcommands.util.Log; import org.sufficientlysecure.rootcommands.util.RootAccessDeniedException; import org.sufficientlysecure.rootcommands.util.Utils; diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Toolbox.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Toolbox.java index 9f2a7fbd0..b36546fbb 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Toolbox.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/Toolbox.java @@ -19,12 +19,12 @@ package org.sufficientlysecure.rootcommands; import android.os.StatFs; import android.os.SystemClock; +import android.util.Log; import org.sufficientlysecure.rootcommands.command.Command; import org.sufficientlysecure.rootcommands.command.ExecutableCommand; import org.sufficientlysecure.rootcommands.command.SimpleCommand; import org.sufficientlysecure.rootcommands.util.BrokenBusyboxException; -import org.sufficientlysecure.rootcommands.util.Log; import java.io.File; import java.io.FileNotFoundException; diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/command/Command.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/command/Command.java index e7e54781c..ce02f9ea2 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/command/Command.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/command/Command.java @@ -17,10 +17,11 @@ package org.sufficientlysecure.rootcommands.command; +import android.util.Log; + import org.sufficientlysecure.rootcommands.RootCommands; import org.sufficientlysecure.rootcommands.Shell; import org.sufficientlysecure.rootcommands.util.BrokenBusyboxException; -import org.sufficientlysecure.rootcommands.util.Log; import java.io.IOException; import java.io.OutputStream; diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Log.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Log.java deleted file mode 100644 index 337c49d41..000000000 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Log.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2012 Dominik Schürmann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.sufficientlysecure.rootcommands.util; - -import org.sufficientlysecure.rootcommands.RootCommands; - -/** - * Wraps Android Logging to enable or disable debug output using Constants - */ -public final class Log { - - public static void v(String tag, String msg) { - if (RootCommands.DEBUG) { - android.util.Log.v(tag, msg); - } - } - - public static void v(String tag, String msg, Throwable tr) { - if (RootCommands.DEBUG) { - android.util.Log.v(tag, msg, tr); - } - } - - public static void d(String tag, String msg) { - if (RootCommands.DEBUG) { - android.util.Log.d(tag, msg); - } - } - - public static void d(String tag, String msg, Throwable tr) { - if (RootCommands.DEBUG) { - android.util.Log.d(tag, msg, tr); - } - } - - public static void i(String tag, String msg) { - if (RootCommands.DEBUG) { - android.util.Log.i(tag, msg); - } - } - - public static void i(String tag, String msg, Throwable tr) { - if (RootCommands.DEBUG) { - android.util.Log.i(tag, msg, tr); - } - } - - public static void w(String tag, String msg) { - android.util.Log.w(tag, msg); - } - - public static void w(String tag, String msg, Throwable tr) { - android.util.Log.w(tag, msg, tr); - } - - public static void w(String tag, Throwable tr) { - android.util.Log.w(tag, tr); - } - - public static void e(String tag, String msg) { - android.util.Log.e(tag, msg); - } - - public static void e(String tag, String msg, Throwable tr) { - android.util.Log.e(tag, msg, tr); - } - -} diff --git a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Utils.java b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Utils.java index e04d4dbd0..1aab0a0a1 100644 --- a/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Utils.java +++ b/lib/RootCommands/src/main/java/org/sufficientlysecure/rootcommands/util/Utils.java @@ -18,6 +18,8 @@ package org.sufficientlysecure.rootcommands.util; +import android.util.Log; + import org.sufficientlysecure.rootcommands.RootCommands; import java.io.File;