-
-
Save twstagg/10060085 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.deviant.security.shield; | |
public final class BuildConfig { | |
public static final String BUILD_TYPE = "debug"; | |
public static final boolean DEBUG; | |
public static final String FLAVOR = ""; | |
public static final String PACKAGE_NAME = "com.deviant.security.shield"; | |
public static final int VERSION_CODE = 4; | |
public static final String VERSION_NAME = "2.2"; | |
static { | |
DEBUG = Boolean.parseBoolean("true"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.deviant.security.shield; | |
import android.content.SharedPreferences; | |
import android.content.SharedPreferences.Editor; | |
import android.os.Bundle; | |
import android.support.v7.app.ActionBarActivity; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.view.View.OnClickListener; | |
import android.widget.ImageView; | |
import com.deviant.security.shield.utility.NotificationHelper; | |
public class MainActivity extends ActionBarActivity { | |
public static final String PREFS_NAME = "ShieldPrefs"; | |
public boolean isEnabled; | |
private Menu menu; | |
SharedPreferences settings; | |
public MainActivity() { | |
this.isEnabled = false; | |
} | |
private void toggleShield() { | |
ImageView enableButton = (ImageView) findViewById(R.id.enableButton); | |
boolean isEnabled = this.settings.getBoolean("isEnabled", false); | |
Editor editor = this.settings.edit(); | |
MenuItem status = this.menu.findItem(R.id.action_status); | |
if (isEnabled) { | |
editor.putBoolean("isEnabled", false); | |
status.setTitle(R.string.action_status_disabled); | |
enableButton.setImageResource(R.drawable.shield_disabled); | |
} else { | |
editor.putBoolean("isEnabled", true); | |
status.setTitle(R.string.action_status_enabled); | |
enableButton.setImageResource(R.drawable.shield_enabled); | |
} | |
editor.commit(); | |
} | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
this.settings = getSharedPreferences(PREFS_NAME, 0); | |
setContentView(R.layout.activity_main); | |
ImageView enableButton = (ImageView) findViewById(R.id.enableButton); | |
if (this.settings.getBoolean("isEnabled", false)) { | |
enableButton.setImageResource(R.drawable.shield_enabled); | |
} else { | |
enableButton.setImageResource(R.drawable.shield_disabled); | |
} | |
enableButton.setOnClickListener(new OnClickListener() { | |
public void onClick(View v) { | |
MainActivity.this.toggleShield(); | |
} | |
}); | |
new NotificationHelper(getApplicationContext()).createNotification(); | |
} | |
public boolean onCreateOptionsMenu(Menu menu) { | |
this.menu = menu; | |
getMenuInflater().inflate(R.menu.main, menu); | |
boolean isEnabled = this.settings.getBoolean("isEnabled", false); | |
MenuItem status = menu.findItem(R.id.action_status); | |
if (isEnabled) { | |
status.setTitle(R.string.action_status_enabled); | |
} else { | |
status.setTitle(R.string.action_status_disabled); | |
} | |
return true; | |
} | |
public boolean onOptionsItemSelected(MenuItem item) { | |
int id = item.getItemId(); | |
if (id == 2131165246) { | |
return true; | |
} else { | |
if (id == 2131165245) { | |
toggleShield(); | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.deviant.security.shield.utility; | |
import android.app.Notification; | |
import android.app.NotificationManager; | |
import android.app.PendingIntent; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.support.v4.app.NotificationCompat.Builder; | |
import com.deviant.security.shield.R; | |
public class NotificationHelper { | |
private int NOTIFICATION_ID; | |
private Builder mBuilder; | |
private PendingIntent mContentIntent; | |
private CharSequence mContentTitle; | |
private Context mContext; | |
private Notification mNotification; | |
private NotificationManager mNotificationManager; | |
public NotificationHelper(Context context) { | |
this.NOTIFICATION_ID = 1; | |
this.mContext = context; | |
} | |
public void createNotification() { | |
this.mNotificationManager = (NotificationManager) this.mContext.getSystemService("notification"); | |
this.mBuilder = new Builder(this.mContext); | |
this.mBuilder.setContentTitle("Scan in progress").setContentText("Scanning for malicious content").setSmallIcon(R.drawable.shield_notification); | |
this.mBuilder.setContentInfo("0%"); | |
this.mContentIntent = PendingIntent.getActivity(this.mContext, 0, new Intent(), 0); | |
this.mBuilder.setContentIntent(this.mContentIntent); | |
new Thread(new Runnable() { | |
public void run() { | |
int incr = 0; | |
while (incr <= 100) { | |
NotificationHelper.this.mBuilder.setContentInfo(incr + "%"); | |
NotificationHelper.this.mBuilder.setProgress(100, incr, false); | |
NotificationHelper.this.mNotificationManager.notify(NotificationHelper.this.NOTIFICATION_ID, NotificationHelper.this.mBuilder.build()); | |
try { | |
Thread.sleep(1000); | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
incr++; | |
} | |
NotificationHelper.this.mBuilder.setContentTitle("Scan complete"); | |
NotificationHelper.this.mBuilder.setContentText("Your device is secure"); | |
NotificationHelper.this.mBuilder.setProgress(0, 0, false); | |
NotificationHelper.this.mNotificationManager.notify(NotificationHelper.this.NOTIFICATION_ID, NotificationHelper.this.mBuilder.build()); | |
} | |
}).start(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.deviant.security.shield; | |
import android.content.SharedPreferences; | |
import android.content.SharedPreferences.Editor; | |
import android.os.Bundle; | |
import android.support.v7.app.ActionBarActivity; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.widget.ToggleButton; | |
public class Settings extends ActionBarActivity { | |
public static final String PREFS_NAME = "ShieldPrefs"; | |
SharedPreferences settings; | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
this.settings = getSharedPreferences(PREFS_NAME, 0); | |
setContentView(R.layout.activity_settings); | |
ToggleButton toggle1 = (ToggleButton) findViewById(R.id.toggle1); | |
if (this.settings.getBoolean("realtime", false)) { | |
toggle1.setChecked(true); | |
} else { | |
toggle1.setChecked(false); | |
} | |
ToggleButton toggle2 = (ToggleButton) findViewById(R.id.toggle2); | |
if (this.settings.getBoolean("scanning", false)) { | |
toggle2.setChecked(true); | |
return; | |
} else { | |
toggle2.setChecked(false); | |
} | |
} | |
public boolean onCreateOptionsMenu(Menu menu) { | |
getMenuInflater().inflate(R.menu.settings, menu); | |
return true; | |
} | |
public boolean onOptionsItemSelected(MenuItem item) { | |
return item.getItemId() == 2131165250 ? true : super.onOptionsItemSelected(item); | |
} | |
public void toggleRealtime(View view) { | |
Editor editor = this.settings.edit(); | |
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle1); | |
if (this.settings.getBoolean("realtime", false)) { | |
editor.putBoolean("realtime", false); | |
toggle.setChecked(false); | |
} else { | |
editor.putBoolean("realtime", true); | |
toggle.setChecked(true); | |
} | |
editor.commit(); | |
} | |
public void toggleScanning(View view) { | |
Editor editor = this.settings.edit(); | |
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle2); | |
if (this.settings.getBoolean("scanning", false)) { | |
editor.putBoolean("scanning", false); | |
toggle.setChecked(false); | |
} else { | |
editor.putBoolean("scanning", true); | |
toggle.setChecked(true); | |
} | |
editor.commit(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment