package tk.wasdennnoch.androidn_ify.ui; import android.annotation.SuppressLint; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.graphics.drawable.RippleDrawable; import android.net.Uri; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import tk.wasdennnoch.androidn_ify.BuildConfig; import tk.wasdennnoch.androidn_ify.R; import tk.wasdennnoch.androidn_ify.utils.ConfigUtils; import tk.wasdennnoch.androidn_ify.utils.UpdateUtils; import tk.wasdennnoch.androidn_ify.utils.ViewUtils; public class AboutActivity extends Activity implements UpdateUtils.UpdateListener, View.OnClickListener { private TextView mUpdateText; private boolean mExperimental; private boolean mShowExperimental; private int mHitCountdown = 7; private Toast mHitToast; @Override protected void onCreate(Bundle savedInstanceState) { SharedPreferences prefs = ConfigUtils.getPreferences(this); ViewUtils.applyTheme(this, prefs); mExperimental = ConfigUtils.isExperimental(prefs); mShowExperimental = ConfigUtils.showExperimental(prefs); super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); ActionBar actionBar = getActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); String version = String.format(getString(R.string.about_version), pInfo.versionName, pInfo.versionCode); if (BuildConfig.AUTOMATED_BUILD) version += "\nThis is an automated build. Bugs are expected."; ((TextView) findViewById(R.id.version)).setText(version); } catch (PackageManager.NameNotFoundException e) { findViewById(R.id.version).setVisibility(View.GONE); } findViewById(R.id.github).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://github.com/wasdennnoch/AndroidN-ify"))); } }); findViewById(R.id.xda).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://forum.xda-developers.com/xposed/modules/xposed-android-n-ify-features-t3345091"))); } }); setupIcon(); checkForUpdates(); } private void setupIcon() { ImageView im = (ImageView) findViewById(R.id.icon); Drawable N = im.getDrawable(); im.setImageDrawable(null); im.setBackground(new RippleDrawable( ColorStateList.valueOf(0xFFFFFFFF), N, null)); im.setOnClickListener(this); } private void checkForUpdates() { if (UpdateUtils.isEnabled()) { mUpdateText = (TextView) findViewById(R.id.updates); mUpdateText.setText(R.string.checking_for_update); mUpdateText.setVisibility(View.VISIBLE); UpdateUtils.check(this, this); } } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } @Override public void onError(Exception e) { mUpdateText.setText(R.string.check_for_update_fail); } @Override public void onFinish(UpdateUtils.UpdateData updateData) { if (updateData.getNumber() > BuildConfig.BUILD_NUMBER && updateData.hasArtifact()) { mUpdateText.setText(String.format(getString(R.string.update_notification), updateData.getNumber())); UpdateUtils.showNotification(updateData, this, mExperimental); } else { mUpdateText.setText(R.string.no_updates); } } @SuppressLint("CommitPrefEdits") @Override public void onClick(View v) { if (mHitToast != null) mHitToast.cancel(); if (mShowExperimental) { mHitToast = Toast.makeText(this, R.string.show_experimental_on_already, Toast.LENGTH_SHORT); mHitToast.show(); return; } mHitCountdown--; if (mHitCountdown == 0) { mShowExperimental = !mShowExperimental; ConfigUtils.getPreferences(this).edit().putBoolean("show_experimental_features", mShowExperimental).commit(); mHitToast = Toast.makeText(this, R.string.show_experimental_on, Toast.LENGTH_SHORT); } else if (mHitCountdown < 5) { mHitToast = Toast.makeText(this, getResources().getQuantityString(R.plurals.enable_experimental_countdown, mHitCountdown, mHitCountdown), Toast.LENGTH_SHORT); } if (mHitToast != null) mHitToast.show(); } }