package com.scottyab.rootbeer.sample;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import uk.co.barbuzz.beerprogressview.BeerProgressView;
public class MainActivity extends AppCompatActivity
implements CheckRootTask.OnCheckRootFinishedListener {
private static final String GITHUB_LINK = "https://github.com/scottyab/rootbeer";
private AlertDialog infoDialog;
private BeerProgressView beerView;
private MainActivity mActivity;
private TextViewFont isRootedText;
private ArrayList<ImageView> checkRootImageViewList;
private TextView isRootedTextDisclaimer;
private FloatingActionButton floatingActionButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mActivity = this;
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
beerView = (BeerProgressView) findViewById(R.id.loadingRootCheckBeerView);
isRootedText = (TextViewFont) findViewById(R.id.content_main_is_rooted_text);
isRootedTextDisclaimer = (TextView) findViewById(R.id.content_mainisRootedTextDisclaimer);
ImageView rootCheck1ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_1);
ImageView rootCheck2ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_2);
ImageView rootCheck3ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_3);
ImageView rootCheck4ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_4);
ImageView rootCheck5ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_5);
ImageView rootCheck6ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_6);
ImageView rootCheck7ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_7);
ImageView rootCheck8ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_8);
ImageView rootCheck9ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_9);
ImageView rootCheck10ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_10);
ImageView rootCheck11ImageView = (ImageView) findViewById(R.id.content_main_root_check_image_11);
checkRootImageViewList = new ArrayList<>();
checkRootImageViewList.add(rootCheck1ImageView);
checkRootImageViewList.add(rootCheck2ImageView);
checkRootImageViewList.add(rootCheck3ImageView);
checkRootImageViewList.add(rootCheck4ImageView);
checkRootImageViewList.add(rootCheck5ImageView);
checkRootImageViewList.add(rootCheck6ImageView);
checkRootImageViewList.add(rootCheck7ImageView);
checkRootImageViewList.add(rootCheck8ImageView);
checkRootImageViewList.add(rootCheck9ImageView);
checkRootImageViewList.add(rootCheck10ImageView);
checkRootImageViewList.add(rootCheck11ImageView);
floatingActionButton = (FloatingActionButton) findViewById(R.id.fab);
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
floatingActionButton.setVisibility(View.GONE);
resetRootCheckImages();
CheckRootTask checkRootTask = new CheckRootTask(mActivity, mActivity, beerView,
checkRootImageViewList);
checkRootTask.execute(true);
}
});
}
private void resetRootCheckImages() {
isRootedText.setVisibility(View.GONE);
for (ImageView imageView : checkRootImageViewList) {
imageView.setImageDrawable(null);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_github) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(GITHUB_LINK));
startActivity(i);
return true;
} else if (id == R.id.action_info) {
showInfoDialog();
return true;
}
return super.onOptionsItemSelected(item);
}
private void showInfoDialog() {
if (infoDialog != null && infoDialog.isShowing()) {
//do nothing if already showing
} else {
infoDialog = new AlertDialog.Builder(this)
.setTitle(R.string.app_name)
.setMessage(R.string.info_details)
.setCancelable(true)
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setNegativeButton("More info", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(GITHUB_LINK)));
}
})
.create();
infoDialog.show();
}
}
@Override
public void onCheckRootFinished(boolean isRooted) {
floatingActionButton.setVisibility(View.VISIBLE);
isRootedText.setText(isRooted ? "ROOTED*" : "NOT ROOTED");
isRootedTextDisclaimer.setVisibility(isRooted ? View.VISIBLE : View.GONE);
isRootedText.setTextColor(isRooted ? getResources().getColor(R.color.fail) : getResources().getColor(R.color.pass));
isRootedText.setVisibility(View.VISIBLE);
}
}