1 package com.koushikdutta.superuser;
3 import java.util.ArrayList;
5 import android.content.res.Configuration;
6 import android.graphics.drawable.Drawable;
7 import android.os.Bundle;
8 import android.os.Handler;
9 import android.support.v4.app.DialogFragment;
10 import android.text.format.DateFormat;
11 import android.view.MenuInflater;
12 import android.view.MenuItem;
13 import android.view.MenuItem.OnMenuItemClickListener;
14 import android.view.View;
15 import android.widget.ImageView;
17 import com.koushikdutta.superuser.db.SuDatabaseHelper;
18 import com.koushikdutta.superuser.db.UidPolicy;
19 import com.koushikdutta.widgets.BetterListActivity;
20 import com.koushikdutta.widgets.BetterListFragment;
21 import com.koushikdutta.widgets.ListContentFragment;
22 import com.koushikdutta.widgets.ListItem;
24 public class MainActivity extends BetterListActivity {
25 public MainActivity() {
26 super(ListContentFragment.class);
29 public ListContentFragment getFragment() {
30 return (ListContentFragment)super.getFragment();
34 setContent(null, null);
35 getFragment().getListView().clearChoices();
38 public boolean onCreateOptionsMenu(android.view.Menu menu) {
39 MenuInflater mi = new MenuInflater(this);
40 mi.inflate(R.menu.main, menu);
41 MenuItem log = menu.findItem(R.id.logs);
42 log.setOnMenuItemClickListener(new OnMenuItemClickListener() {
44 public boolean onMenuItemClick(MenuItem item) {
50 MenuItem settings = menu.findItem(R.id.settings);
51 settings.setOnMenuItemClickListener(new OnMenuItemClickListener() {
53 public boolean onMenuItemClick(final MenuItem item) {
54 getFragment().setContent(new SettingsFragment() {
56 public void onConfigurationChanged(Configuration newConfig) {
57 super.onConfigurationChanged(newConfig);
58 onMenuItemClick(item);
64 return super.onCreateOptionsMenu(menu);
67 BetterListFragment mContent;
69 public void onCreate(Bundle savedInstanceState, View view) {
70 super.onCreate(savedInstanceState, view);
72 getFragment().setEmpty(R.string.no_apps);
76 ImageView watermark = (ImageView)view.findViewById(R.id.watermark);
77 if (watermark != null)
78 watermark.setImageResource(R.drawable.clockwork512);
79 if (!getFragment().isPaged())
83 public void onBackPressed() {
84 if (getFragment().onBackPressed())
86 super.onBackPressed();
89 void setContent(final ListItem li, final UidPolicy up) {
90 mContent = new LogFragment() {
94 getFragment().removeItem(li);
99 public void onConfigurationChanged(Configuration newConfig) {
100 super.onConfigurationChanged(newConfig);
105 getFragment().setContent(mContent, up == null);
108 void addPolicy(final UidPolicy up) {
109 java.text.DateFormat df = DateFormat.getLongDateFormat(MainActivity.this);
110 String date = df.format(up.getLastDate());
113 ListItem li = addItem(up.getPolicyResource(), new ListItem(getFragment(), up.name, date) {
114 public void onClick(View view) {
117 setContent(this, up);
120 Drawable icon = Helper.loadPackageIcon(this, up.packageName);
122 li.setIcon(R.drawable.ic_launcher);
124 li.setDrawable(icon);
127 Handler mHandler = new Handler();
129 final ArrayList<UidPolicy> policies = SuDatabaseHelper.getPolicies(MainActivity.this);
131 for (UidPolicy up: policies) {