appinstall = p.getInstalledPackages(PackageManager.GET_PERMISSIONS | PackageManager.GET_RECEIVERS |
61 | PackageManager.GET_SERVICES | PackageManager.GET_PROVIDERS);
62 |
63 | for (final PackageInfo pInfo : appinstall) {
64 | if ( (pInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 ) {
65 | PermissionInfo[] permission = pInfo.permissions;
66 | String[] reqPermission = pInfo.requestedPermissions;
67 | ServiceInfo[] services = pInfo.services;
68 | ProviderInfo[] providers = pInfo.providers;
69 | int versionCode = pInfo.versionCode;
70 |
71 |
72 | ApplicationInfo applicationInfo = null;
73 | try {
74 | applicationInfo = p.getApplicationInfo(pInfo.packageName, 0);
75 | } catch (final PackageManager.NameNotFoundException e) {
76 | }
77 | if( applicationInfo != null) {
78 | appname = (String) p.getApplicationLabel(applicationInfo);
79 | }
80 |
81 | LinearLayout layout1 = (LinearLayout) (findViewById(R.id.info));
82 | final TextView permheader = new TextView(this);
83 | layout1.addView(permheader);
84 | permheader.setText(appname);
85 | permheader.setTypeface(custom_font3);
86 | permheader.setAllCaps(true);
87 | permheader.setTextSize(18);
88 | permheader.isClickable();
89 |
90 | permheader.setOnClickListener(new View.OnClickListener() {
91 | @Override
92 | public void onClick(View v) {
93 | Intent i = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
94 | i.addCategory(Intent.CATEGORY_DEFAULT);
95 | i.setData(Uri.parse("package:" + pInfo.packageName));
96 | startActivity(i);
97 | }
98 | });
99 | permheader.setTextColor(getResources().getColor(R.color.white));
100 |
101 | String [] appNames;
102 |
103 | if (reqPermission != null) {
104 | for (int i = 0; i < reqPermission.length; i++) {
105 | if (VulnPerms.contains(reqPermission[i])) {
106 | LinearLayout layout = (LinearLayout) (findViewById(R.id.info));
107 | final TextView PermTextView = new TextView(this);
108 | layout.addView(PermTextView);
109 | PermTextView.setText(" " + reqPermission[i]);
110 | PermTextView.setTextSize(12);
111 | PermTextView.setTextColor(getResources().getColor(R.color.white));
112 | }
113 |
114 | }
115 |
116 | }
117 | }
118 |
119 | }
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/RootDetector.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra;
2 |
3 | import android.content.Intent;
4 | import android.graphics.Typeface;
5 | import android.os.Build;
6 | import android.os.Bundle;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.view.View;
9 | import android.widget.Button;
10 | import android.widget.TextView;
11 | import android.widget.Toast;
12 | import android.widget.ToggleButton;
13 |
14 | import java.io.BufferedReader;
15 | import java.io.File;
16 | import java.io.InputStreamReader;
17 |
18 | public class RootDetector extends AppCompatActivity {
19 |
20 |
21 | @Override
22 | protected void onCreate(Bundle savedInstanceState) {
23 | super.onCreate(savedInstanceState);
24 | setContentView(R.layout.activity_root_detector);
25 |
26 | Typeface custom_font2 = Typeface.createFromAsset(getAssets(), "fonts/OdinBold.otf");
27 | Typeface custom_font7 = Typeface.createFromAsset(getAssets(), "fonts/SR.otf");
28 |
29 | final TextView tvroot1 = (TextView) findViewById(R.id.textView3);
30 | tvroot1.setTypeface(custom_font2);
31 | final TextView tvroot2 = (TextView) findViewById(R.id.roottv);
32 | tvroot2.setTypeface(custom_font7);
33 |
34 | ToggleButton rootb = (ToggleButton) (findViewById(R.id.Roottb));
35 | ToggleButton hooktb = (ToggleButton) (findViewById(R.id.hooktb));
36 |
37 | Button rtools = (Button) (findViewById(R.id.broottools));
38 | Button unroot = (Button)(findViewById(R.id.bunroot));
39 | TextView roottv = (TextView) (findViewById(R.id.roottv));
40 |
41 | TextView hooktv = (TextView) (findViewById(R.id.Syshook));
42 | hooktv.setTypeface(custom_font2);
43 | TextView syshooktv = (TextView) (findViewById(R.id.tvSyshook));
44 | syshooktv.setTypeface(custom_font7);
45 |
46 |
47 | String yesdesc = "Your device has root access. Rooted devices allow lot of customizations but as well pose serious security issues by allowing apps to access lot of resources from the phone. You can choose to unroot the device or install security-enhancing tools. Here is a list : ";
48 | String nodesc = "No root access detected. Your device is a little more safer!";
49 |
50 | String hookyes = "Your device has been hooked. This means that user applications could act as privileged applications and gain access to system resources and settings.";
51 | String hookno = "No system hook found. Your device is fully under your control.";
52 |
53 | boolean isHooked = FindHook();
54 |
55 | if (isHooked == true){
56 |
57 | hooktb.setChecked(true);
58 | syshooktv.setText(hookyes);
59 | }
60 |
61 | else{
62 | hooktb.setChecked(false);
63 | syshooktv.setText(hookno);
64 | }
65 |
66 | boolean isRooted = FindRoot();
67 |
68 | if (isRooted == true) {
69 |
70 |
71 | rootb.setChecked(true);
72 | roottv.setText(yesdesc);
73 | rtools.setOnClickListener(new View.OnClickListener()
74 | {
75 | public void onClick(View v)
76 | {
77 | Intent i = new Intent(RootDetector.this, RootTools.class);
78 | RootDetector.this.startActivity(i);
79 | }
80 | });
81 |
82 | unroot.setOnClickListener(new View.OnClickListener()
83 | {
84 | public void onClick(View v)
85 | {
86 | Intent i = new Intent(RootDetector.this, Unroot.class);
87 | RootDetector.this.startActivity(i);
88 | finish();
89 | }
90 |
91 | });
92 |
93 | rtools.setVisibility(View.VISIBLE);
94 | unroot.setVisibility(View.VISIBLE);
95 |
96 | } else {
97 | rootb.setChecked(false);
98 | roottv.setText(nodesc);
99 | }
100 | }
101 |
102 | public boolean FindRoot() {
103 | return TestKeysChecker() || SUBinFinder() || SURuntimeCheck();
104 | }
105 |
106 | public boolean TestKeysChecker() {
107 | String keys = Build.TAGS;
108 | if (keys != null && keys.contains("test-keys")) {
109 |
110 | Toast.makeText(this, " Test-keys found ", Toast.LENGTH_SHORT).show();
111 | return true;
112 | } else {
113 | Toast.makeText(this, "Test-keys not found", Toast.LENGTH_SHORT).show();
114 | return false;
115 | }
116 | }
117 |
118 |
119 | //Check within the paths for the existance of su binary
120 | public boolean SUBinFinder() {
121 | String[] paths = {"/system/app/Superuser.apk",
122 | "/system/priv-app/Superuser.apk",
123 | "/system/priv-app/superuser.apk",
124 | "/system/app/superuser.apk",
125 | "/sbin/su",
126 | "/system/bin/su",
127 | "/system/xbin/su",
128 | "/data/local/xbin/su",
129 | "/data/local/bin/su",
130 | "/system/sd/xbin/su",
131 | "/system/bin/failsafe/su",
132 | "/data/local/su",
133 | "/su/bin/su"
134 | };
135 |
136 | int dircount = 0;
137 |
138 |
139 |
140 | for (String path : paths) {
141 |
142 | if (new File(path).exists()) {
143 | dircount++;
144 | }
145 | }
146 |
147 | if (dircount > 0) {
148 |
149 | Toast.makeText(this, " SU binary found ", Toast.LENGTH_SHORT).show();
150 | return true;
151 |
152 | } else {
153 |
154 | Toast.makeText(this, "SU binary not found", Toast.LENGTH_SHORT).show();
155 | return false;
156 | }
157 | }
158 |
159 |
160 | //Executing the su binary
161 | public boolean SURuntimeCheck() {
162 | Process process = null;
163 | try {
164 | process = Runtime.getRuntime().exec(new String[]{"/system/xbin/which", "su"});
165 | BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
166 | if (in.readLine() != null) {
167 | Toast.makeText(this, " SU execution successfull ! ", Toast.LENGTH_SHORT).show();
168 | return true;
169 | }
170 | Toast.makeText(this, "SU execution failed", Toast.LENGTH_SHORT).show();
171 |
172 |
173 | } catch (Throwable t) {
174 |
175 | } finally {
176 | if (process != null) process.destroy();
177 | }
178 | return false;
179 | }
180 |
181 |
182 |
183 | /*
184 | Finding system hooks.
185 | Two processes used.
186 | */
187 |
188 | public boolean FindHook() {return HookJarFinder();}
189 |
190 |
191 | public boolean HookJarFinder(){
192 | String hook = "/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar";
193 | if (new File(hook).exists()){
194 | Toast.makeText(this, "Xposed Bridge found. System has been hooked!", Toast.LENGTH_SHORT).show();
195 | return true;
196 | }
197 | else {
198 | Toast.makeText(this, "Xposed Bridge not found. System not hooked.", Toast.LENGTH_SHORT).show();
199 | return false;
200 | }
201 | }
202 | }
203 |
204 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/RootTools.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra;
2 |
3 | import android.content.Intent;
4 | import android.graphics.Typeface;
5 | import android.net.Uri;
6 | import android.os.Bundle;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.support.v7.widget.Toolbar;
9 | import android.view.View;
10 | import android.widget.Button;
11 | import android.widget.TextView;
12 |
13 | public class RootTools extends AppCompatActivity {
14 |
15 | @Override
16 | protected void onCreate(Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | setContentView(R.layout.activity_root_tools);
19 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
20 | setSupportActionBar(toolbar);
21 |
22 | Typeface custom_font2 = Typeface.createFromAsset(getAssets(), "fonts/OdinBold.otf");
23 | Typeface custom_font7 = Typeface.createFromAsset(getAssets(), "fonts/SR.otf");
24 |
25 | final TextView tvtools = (TextView) findViewById(R.id.textView5);
26 | tvtools.setTypeface(custom_font2);
27 |
28 | final TextView tvtool1 = (TextView) findViewById(R.id.textView17);
29 | tvtool1.setTypeface(custom_font7);
30 | final TextView tvtool2 = (TextView) findViewById(R.id.textView16);
31 | tvtool2.setTypeface(custom_font7);
32 | final TextView tvtool3 = (TextView) findViewById(R.id.textView18);
33 | tvtool3.setTypeface(custom_font7);
34 | final TextView tvtool4 = (TextView) findViewById(R.id.textView19);
35 | tvtool4.setTypeface(custom_font7);
36 | final TextView tvtool5 = (TextView) findViewById(R.id.textView15);
37 | tvtool5.setTypeface(custom_font7);
38 | final TextView tvtool6 = (TextView) findViewById(R.id.textView11);
39 | tvtool6.setTypeface(custom_font7);
40 |
41 | Button adblock = (Button)(findViewById(R.id.adblockbtn));
42 | adblock.setOnClickListener(new View.OnClickListener() {
43 | @Override
44 | public void onClick(View v) {
45 |
46 | String url = "https://adblockplus.org/android-install";
47 | Intent i = new Intent(Intent.ACTION_VIEW);
48 | i.setData(Uri.parse(url));
49 | startActivity(i);
50 | }
51 |
52 | });
53 |
54 | Button greenify = (Button) (findViewById(R.id.greenifybtn));
55 | greenify.setOnClickListener(new View.OnClickListener() {
56 | @Override
57 | public void onClick(View v) {
58 |
59 | String url = "https://play.google.com/store/apps/details?id=com.oasisfeng.greenify";
60 | Intent i = new Intent(Intent.ACTION_VIEW);
61 | i.setData(Uri.parse(url));
62 | startActivity(i);
63 | }
64 | });
65 |
66 | Button blocker = (Button) (findViewById(R.id.blockerbtn));
67 | blocker.setOnClickListener(new View.OnClickListener() {
68 | @Override
69 | public void onClick(View v) {
70 | String url = "https://play.google.com/store/apps/details?id=com.netqin.mm";
71 | Intent i = new Intent(Intent.ACTION_VIEW);
72 | i.setData(Uri.parse(url));
73 | startActivity(i);
74 | }
75 | });
76 |
77 | }
78 |
79 | }
80 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/SettingsScanner.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra;
2 |
3 | import android.content.Intent;
4 | import android.graphics.Typeface;
5 | import android.net.Uri;
6 | import android.os.Bundle;
7 | import android.provider.Settings;
8 | import android.support.v7.app.AppCompatActivity;
9 | import android.view.View;
10 | import android.widget.TextView;
11 | import android.widget.ToggleButton;
12 |
13 | import com.google.android.gms.appindexing.Action;
14 | import com.google.android.gms.appindexing.AppIndex;
15 | import com.google.android.gms.appindexing.Thing;
16 | import com.google.android.gms.common.api.GoogleApiClient;
17 |
18 | public class SettingsScanner extends AppCompatActivity {
19 |
20 |
21 | /**
22 | * ATTENTION: This was auto-generated to implement the App Indexing API.
23 | * See https://g.co/AppIndexing/AndroidStudio for more information.
24 | */
25 | private GoogleApiClient client;
26 |
27 | @Override
28 | protected void onCreate(Bundle savedInstanceState) {
29 | super.onCreate(savedInstanceState);
30 | setContentView(R.layout.activity_settings_scanner);
31 |
32 | final TextView ss = (TextView) findViewById(R.id.tvvs);
33 | final TextView adbt = (TextView) findViewById(R.id.ADBTView);
34 | final TextView usv = (TextView) findViewById(R.id.USourcesView);
35 | final TextView db = (TextView) findViewById(R.id.DevTView);
36 |
37 | final TextView usd = (TextView) findViewById(R.id.textView7);
38 | final TextView debd = (TextView) findViewById(R.id.textView8);
39 | final TextView devd = (TextView) findViewById(R.id.textView12);
40 |
41 | Typeface custom_font1 = Typeface.createFromAsset(getAssets(), "fonts/SourceSansPro-Black.otf");
42 | Typeface custom_font2 = Typeface.createFromAsset(getAssets(), "fonts/OstrichSans-Bold.otf");
43 | Typeface custom_font3 = Typeface.createFromAsset(getAssets(), "fonts/OdinBold.otf");
44 | Typeface custom_font4 = Typeface.createFromAsset(getAssets(), "fonts/trench100free.otf");
45 | Typeface custom_font5 = Typeface.createFromAsset(getAssets(), "fonts/More.otf");
46 | Typeface custom_font6 = Typeface.createFromAsset(getAssets(), "fonts/MagmaWave_Caps.otf");
47 | Typeface custom_font7 = Typeface.createFromAsset(getAssets(), "fonts/SR.otf");
48 |
49 | ss.setTypeface(custom_font3);
50 | usv.setTypeface(custom_font7);
51 | adbt.setTypeface(custom_font7);
52 | db.setTypeface(custom_font7);
53 |
54 | usd.setTypeface(custom_font7);
55 | debd.setTypeface(custom_font7);
56 | devd.setTypeface(custom_font7);
57 |
58 | try {
59 | checkSettings();
60 | } catch (Settings.SettingNotFoundException e) {
61 | e.printStackTrace();
62 | }
63 | // ATTENTION: This was auto-generated to implement the App Indexing API.
64 | // See https://g.co/AppIndexing/AndroidStudio for more information.
65 | client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
66 | }
67 |
68 |
69 | public void checkSettings() throws Settings.SettingNotFoundException {
70 |
71 | ToggleButton USs = (ToggleButton) (findViewById(R.id.USt));
72 | if (Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0) == 1) {
73 | USs.setChecked(true);
74 | USs.setOnClickListener(new View.OnClickListener() {
75 | @Override
76 | public void onClick(View v) {
77 | startActivityForResult(new Intent(Settings.ACTION_SECURITY_SETTINGS), 0);
78 | }
79 | });
80 | } else {
81 | USs.setChecked(false);
82 | USs.setOnClickListener(new View.OnClickListener() {
83 | @Override
84 | public void onClick(View v) {
85 | startActivityForResult(new Intent(Settings.ACTION_SECURITY_SETTINGS), 0);
86 | }
87 | });
88 | }
89 |
90 |
91 |
92 |
93 |
94 |
95 | ToggleButton ADBes = (ToggleButton) (findViewById(R.id.ADBt));
96 | if (Settings.Secure.getInt(getContentResolver(), Settings.Global.ADB_ENABLED, 0) == 1) {
97 | ADBes.setChecked(true);
98 | ADBes.setOnClickListener(new View.OnClickListener() {
99 | @Override
100 | public void onClick(View v) {
101 | startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0);
102 | }
103 | });
104 | } else {
105 | ADBes.setChecked(false);
106 | ADBes.setOnClickListener(new View.OnClickListener() {
107 | @Override
108 | public void onClick(View v) {
109 | startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0);
110 | }
111 | });
112 | }
113 |
114 |
115 |
116 |
117 |
118 |
119 | ToggleButton DevS = (ToggleButton) (findViewById(R.id.DevB));
120 | if (Settings.Secure.getInt(getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) == 1) {
121 | DevS.setChecked(true);
122 | DevS.setOnClickListener(new View.OnClickListener() {
123 | @Override
124 | public void onClick(View v) {
125 | startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0);
126 | }
127 | });
128 | } else {
129 | DevS.setChecked(false);
130 | DevS.setOnClickListener(new View.OnClickListener() {
131 | @Override
132 | public void onClick(View v) {
133 | startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0);
134 | }
135 | });
136 | }
137 | }
138 |
139 | /**
140 | * ATTENTION: This was auto-generated to implement the App Indexing API.
141 | * See https://g.co/AppIndexing/AndroidStudio for more information.
142 | */
143 | public Action getIndexApiAction() {
144 | Thing object = new Thing.Builder()
145 | .setName("SettingsScanner Page") // TODO: Define a title for the content shown.
146 | // TODO: Make sure this auto-generated URL is correct.
147 | .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
148 | .build();
149 | return new Action.Builder(Action.TYPE_VIEW)
150 | .setObject(object)
151 | .setActionStatus(Action.STATUS_TYPE_COMPLETED)
152 | .build();
153 | }
154 |
155 |
156 | @Override
157 | public void onStart() {
158 | super.onStart();
159 |
160 | // ATTENTION: This was auto-generated to implement the App Indexing API.
161 | // See https://g.co/AppIndexing/AndroidStudio for more information.
162 | client.connect();
163 | AppIndex.AppIndexApi.start(client, getIndexApiAction());
164 | }
165 |
166 | @Override
167 | public void onResume() {
168 | super.onResume();
169 | try {
170 | checkSettings();
171 | } catch (Settings.SettingNotFoundException e) {
172 | e.printStackTrace();
173 | }
174 | }
175 |
176 | @Override
177 | public void onStop() {
178 | super.onStop();
179 |
180 | // ATTENTION: This was auto-generated to implement the App Indexing API.
181 | // See https://g.co/AppIndexing/AndroidStudio for more information.
182 | AppIndex.AppIndexApi.end(client, getIndexApiAction());
183 | client.disconnect();
184 | }
185 | }
186 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/Unroot.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra;
2 |
3 | import android.content.Intent;
4 | import android.graphics.Typeface;
5 | import android.net.Uri;
6 | import android.os.Bundle;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.view.View;
9 | import android.widget.Button;
10 | import android.widget.TextView;
11 |
12 | public class Unroot extends AppCompatActivity {
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | setContentView(R.layout.activity_unroot);
18 |
19 | Typeface custom_font2 = Typeface.createFromAsset(getAssets(), "fonts/OstrichSans-Bold.otf");
20 | Typeface custom_font7 = Typeface.createFromAsset(getAssets(), "fonts/SR.otf");
21 |
22 | final TextView unroot1 = (TextView) findViewById(R.id.textView20);
23 | unroot1.setTypeface(custom_font2);
24 | final TextView unroot2 = (TextView) findViewById(R.id.textView21);
25 | unroot2.setTypeface(custom_font7);
26 |
27 | Button unroot = (Button)(findViewById(R.id.unrtbtn));
28 | unroot.setOnClickListener(new View.OnClickListener() {
29 | @Override
30 | public void onClick(View v) {
31 | String url = "http://www.wikihow.com/Unroot-Android";
32 | Intent i = new Intent(Intent.ACTION_VIEW);
33 | i.setData(Uri.parse(url));
34 | startActivity(i);
35 | }
36 | });
37 |
38 | Button learn = (Button)(findViewById(R.id.learnbtn));
39 | learn.setOnClickListener(new View.OnClickListener() {
40 | @Override
41 | public void onClick(View v) {
42 | String url = "https://en.wikipedia.org/wiki/Rooting_(Android_OS)";
43 | Intent i = new Intent(Intent.ACTION_VIEW);
44 | i.setData(Uri.parse(url));
45 | startActivity(i);
46 | }
47 | });
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/Welcome.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.graphics.Typeface;
6 | import android.os.Build;
7 | import android.os.Bundle;
8 | import android.os.Handler;
9 | import android.support.annotation.RequiresApi;
10 | import android.widget.TextView;
11 |
12 |
13 | public class Welcome extends Activity {
14 |
15 | private final int SPLASH_DISPLAY_LENGTH = 2000;
16 |
17 | @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
18 | @Override
19 | protected void onCreate(Bundle savedInstanceState){
20 | super.onCreate(savedInstanceState);
21 | setContentView(R.layout.activity_welcome);
22 |
23 | Typeface custom_font6 = Typeface.createFromAsset(getAssets(), "fonts/MagmaWave_Caps.otf");
24 | Typeface custom_font8 = Typeface.createFromAsset(getAssets(), "fonts/bod.otf");
25 |
26 | final TextView welc = (TextView) findViewById(R.id.tvr);
27 |
28 | welc.setTypeface(custom_font6);
29 |
30 | new Handler().postDelayed(new Runnable() {
31 |
32 | @Override
33 | public void run() {
34 | Intent i = new Intent(com.gracetex.revo.rudhra.Welcome.this, com.gracetex.revo.rudhra.MainActivity.class);
35 | Welcome.this.startActivity(i);
36 | Welcome.this.finish();
37 | }
38 | }, SPLASH_DISPLAY_LENGTH);
39 | }
40 | }
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gracetex/revo/rudhra/dummy/DummyContent.java:
--------------------------------------------------------------------------------
1 | package com.gracetex.revo.rudhra.dummy;
2 |
3 | import java.util.ArrayList;
4 | import java.util.HashMap;
5 | import java.util.List;
6 | import java.util.Map;
7 |
8 | /**
9 | * Helper class for providing sample content for user interfaces created by
10 | * Android template wizards.
11 | *
12 | * TODO: Replace all uses of this class before publishing your app.
13 | */
14 | public class DummyContent {
15 |
16 | /**
17 | * An array of sample (dummy) items.
18 | */
19 | public static final List ITEMS = new ArrayList();
20 |
21 | /**
22 | * A map of sample (dummy) items, by ID.
23 | */
24 | public static final Map ITEM_MAP = new HashMap();
25 |
26 | private static final int COUNT = 25;
27 |
28 | static {
29 | // Add some sample items.
30 | for (int i = 1; i <= COUNT; i++) {
31 | addItem(createDummyItem(i));
32 | }
33 | }
34 |
35 | private static void addItem(DummyItem item) {
36 | ITEMS.add(item);
37 | ITEM_MAP.put(item.id, item);
38 | }
39 |
40 | private static DummyItem createDummyItem(int position) {
41 | return new DummyItem(String.valueOf(position), "Item " + position, makeDetails(position));
42 | }
43 |
44 | private static String makeDetails(int position) {
45 | StringBuilder builder = new StringBuilder();
46 | builder.append("Details about Item: ").append(position);
47 | for (int i = 0; i < position; i++) {
48 | builder.append("\nMore details information here.");
49 | }
50 | return builder.toString();
51 | }
52 |
53 | /**
54 | * A dummy item representing a piece of content.
55 | */
56 | public static class DummyItem {
57 | public final String id;
58 | public final String content;
59 | public final String details;
60 |
61 | public DummyItem(String id, String content, String details) {
62 | this.id = id;
63 | this.content = content;
64 | this.details = details;
65 | }
66 |
67 | @Override
68 | public String toString() {
69 | return content;
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_action_home.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_action_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_action_permissions.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_root.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_action_root.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_chart.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_info_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_info_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_notifications_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_notifications_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_sync_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-hdpi/ic_sync_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_action_home.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_action_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_action_permissions.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_root.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_action_root.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_chart.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_info_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_info_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_notifications_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_notifications_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_sync_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-mdpi/ic_sync_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_green_tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-v21/ic_green_tick.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_info_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_launcher_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-v21/ic_launcher_new.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_camera.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_gallery.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_manage.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_send.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_share.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_menu_slideshow.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v21/ic_sync_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_action_home.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_action_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_action_permissions.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_root.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_action_root.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_chart.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_notifications_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_notifications_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_sync_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xhdpi/ic_sync_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_action_home.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_action_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_action_permissions.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_root.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_action_root.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_chart.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_cpu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_cpu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_donut_small_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_donut_small_white_48dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_notifications_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_notifications_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_ram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_ram.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_sync_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxhdpi/ic_sync_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxxhdpi/ic_chart.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_info_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxxhdpi/ic_info_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_notifications_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxxhdpi/ic_notifications_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_sync_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/drawable-xxxhdpi/ic_sync_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/side_nav_bar.xml:
--------------------------------------------------------------------------------
1 |
3 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/ic_launcher_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/ic_launcher_new.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_about_us.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
20 |
31 |
32 |
42 |
43 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
16 |
17 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_permission_scanner.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
15 |
16 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_root_detector.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
23 |
24 |
34 |
35 |
46 |
47 |
57 |
58 |
69 |
70 |
80 |
81 |
91 |
92 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_root_tools.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
25 |
26 |
36 |
37 |
47 |
48 |
57 |
58 |
68 |
69 |
77 |
78 |
86 |
87 |
97 |
98 |
107 |
108 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_settings_scanner.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
19 |
20 |
21 |
31 |
32 |
44 |
45 |
55 |
56 |
67 |
68 |
77 |
78 |
89 |
90 |
101 |
102 |
114 |
115 |
124 |
125 |
136 |
137 |
138 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_unroot.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
24 |
25 |
34 |
35 |
44 |
45 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_welcome.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
19 |
20 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/app_bar_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/app_perm_description.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
17 |
18 |
26 |
27 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/content_main2.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
16 |
17 |
29 |
30 |
42 |
43 |
53 |
54 |
66 |
67 |
77 |
78 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/content_permission_scanner.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/content_root_tools.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/graph_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
20 |
21 |
28 |
29 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/nav_header_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
20 |
21 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/permission_description_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
22 |
23 |
34 |
35 |
45 |
46 |
56 |
57 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/permission_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/activity_main_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_about_us.xml:
--------------------------------------------------------------------------------
1 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #303F9F
4 | #E65100
5 | #3f51b5
6 | #49b0fd
7 | #FF4081
8 | #ffffff
9 | #f44336
10 | #9c27b0
11 | #009688
12 | #00838f
13 | #ff9800
14 | #000000
15 | #102027
16 |
17 | #66000000
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 160dp
5 |
6 | 16dp
7 | 16dp
8 | 16dp
9 | 16dp
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values/drawables.xml:
--------------------------------------------------------------------------------
1 |
2 | - @android:drawable/ic_menu_camera
3 | - @android:drawable/ic_menu_gallery
4 | - @android:drawable/ic_menu_slideshow
5 | - @android:drawable/ic_menu_manage
6 | - @android:drawable/ic_menu_share
7 | - @android:drawable/ic_menu_send
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Rudhra
3 |
4 | Open navigation drawer
5 | Close navigation drawer
6 | Abhishek J M
7 | Settings
8 | Settings
9 |
10 |
11 |
12 | - CPU
13 | - RAM
14 |
15 |
16 |
17 | Rudhra
18 | The Droid Vault
19 |
20 |
21 |
22 | General
23 |
24 | Enable social recommendations
25 | Recommendations for people to contact
26 | based on your message history
27 |
28 |
29 | Display name
30 | John Smith
31 |
32 | Add friends to messages
33 |
34 | - Always
35 | - When possible
36 | - Never
37 |
38 |
39 | - 1
40 | - 0
41 | - -1
42 |
43 |
44 |
45 | Data & sync
46 |
47 | Sync frequency
48 |
49 | - 15 minutes
50 | - 30 minutes
51 | - 1 hour
52 | - 3 hours
53 | - 6 hours
54 | - Never
55 |
56 |
57 | - 15
58 | - 30
59 | - 60
60 | - 180
61 | - 360
62 | - -1
63 |
64 |
65 | System sync settings
66 |
67 |
68 | Notifications
69 |
70 | New message notifications
71 |
72 | Ringtone
73 | Silent
74 |
75 | Vibrate
76 |
77 | Welcome
78 | Dummy Button
79 | DUMMY\nCONTENT
80 | AboutUs
81 | RootTools
82 | PermissionScanner
83 |
84 | test
85 | Main2Activity
86 |
87 |
88 | Hello blank fragment
89 |
90 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
21 |
22 |
23 |
29 |
30 |
34 |
35 |
36 |
37 |
38 |
39 |
46 |
47 |
50 |
51 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/pref_data_sync.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/pref_general.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
20 |
21 |
23 |
24 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/pref_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
14 |
15 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/pref_notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
11 |
12 |
13 |
19 |
20 |
21 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/test/java/gracetex/revo/rudhra/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package gracetex.revo.rudhra;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.3.3'
9 |
10 |
11 | // NOTE: Do not place your application dependencies here; they belong
12 | // in the individual module build.gradle files
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | maven { url "https://jitpack.io" }
19 | jcenter()
20 | }
21 | }
22 |
23 | task clean(type: Delete) {
24 | delete rootProject.buildDir
25 | }
26 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhi-r3v0/Rudhra/7f82abf4528be9cb2feada3d84702b5135c6fb89/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Jun 06 12:27:36 IST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------