Moved fragments to a separate package

This commit is contained in:
Sergey Eremin
2017-05-22 16:06:41 +03:00
parent 948887088e
commit 104933cdda
41 changed files with 285 additions and 163 deletions

View File

@@ -11,6 +11,15 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.github.yeriomin.yalpstore.fragment.details.AppLists;
import com.github.yeriomin.yalpstore.fragment.details.BackToPlayStore;
import com.github.yeriomin.yalpstore.fragment.details.DownloadOptions;
import com.github.yeriomin.yalpstore.fragment.details.DownloadOrInstall;
import com.github.yeriomin.yalpstore.fragment.details.GeneralDetails;
import com.github.yeriomin.yalpstore.fragment.details.IgnoreOption;
import com.github.yeriomin.yalpstore.fragment.details.Review;
import com.github.yeriomin.yalpstore.fragment.details.Screenshot;
import com.github.yeriomin.yalpstore.fragment.details.SystemAppPage;
import com.github.yeriomin.yalpstore.model.App;
public class DetailsActivity extends YalpStoreActivity {
@@ -19,9 +28,9 @@ public class DetailsActivity extends YalpStoreActivity {
static private final String INTENT_PACKAGE_NAME = "INTENT_PACKAGE_NAME";
protected DownloadOrInstallFragment downloadOrInstallFragment;
private IgnoreOptionFragment ignoreOptionFragment;
private DownloadOptionsFragment downloadOptionsFragment;
protected DownloadOrInstall downloadOrInstallFragment;
private IgnoreOption ignoreOptionFragment;
private DownloadOptions downloadOptionsFragment;
static public void start(Context context, String packageName) {
Intent intent = new Intent(context, DetailsActivity.class);
@@ -60,7 +69,7 @@ public class DetailsActivity extends YalpStoreActivity {
return;
}
Log.i(getClass().getName(), "Getting info about " + packageName);
ignoreOptionFragment = new IgnoreOptionFragment(this, new App());
ignoreOptionFragment = new IgnoreOption(this, new App());
if (null != DetailsDependentActivity.app) {
drawDetails(DetailsDependentActivity.app);
@@ -132,21 +141,21 @@ public class DetailsActivity extends YalpStoreActivity {
private void drawDetails(App app) {
setTitle(app.getDisplayName());
setContentView(R.layout.details_activity_layout);
new GeneralDetailsFragment(this, app).draw();
new ScreenshotFragment(this, app).draw();
new ReviewFragment(this, app).draw();
new AppListsFragment(this, app).draw();
new BackToPlayStoreFragment(this, app).draw();
new SystemAppPageFragment(this, app).draw();
new GeneralDetails(this, app).draw();
new Screenshot(this, app).draw();
new Review(this, app).draw();
new AppLists(this, app).draw();
new BackToPlayStore(this, app).draw();
new SystemAppPage(this, app).draw();
ignoreOptionFragment.setApp(app);
ignoreOptionFragment.draw();
if (null != downloadOrInstallFragment) {
downloadOrInstallFragment.unregisterReceivers();
}
downloadOrInstallFragment = new DownloadOrInstallFragment(this, app);
downloadOrInstallFragment = new DownloadOrInstall(this, app);
downloadOrInstallFragment.registerReceivers();
downloadOrInstallFragment.draw();
downloadOptionsFragment = new DownloadOptionsFragment(this, app);
downloadOptionsFragment = new DownloadOptions(this, app);
downloadOptionsFragment.draw();
}

View File

@@ -11,13 +11,13 @@ import android.widget.ImageView;
import java.util.List;
class ImageAdapter extends BaseAdapter {
public class ImageAdapter extends BaseAdapter {
protected Context context;
protected List<String> screenshotUrls;
protected int screenWidth;
ImageAdapter(Context context, List<String> screenshotUrls, int screenWidth) {
public ImageAdapter(Context context, List<String> screenshotUrls, int screenWidth) {
this.context = context;
this.screenshotUrls = screenshotUrls;
this.screenWidth = screenWidth;

View File

@@ -7,7 +7,7 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.widget.ImageView;
class ImageDownloadTask extends AsyncTask<String, Void, Void> {
public class ImageDownloadTask extends AsyncTask<String, Void, Void> {
protected ImageView view;
private boolean fullSize;

View File

@@ -34,7 +34,7 @@ public abstract class InstallerAbstract {
return intent;
}
abstract protected void install(App app);
abstract public void install(App app);
public InstallerAbstract(Context context) {
Log.i(getClass().getName(), "Installer chosen");

View File

@@ -12,7 +12,7 @@ public class InstallerDefault extends InstallerAbstract {
}
@Override
protected void install(App app) {
public void install(App app) {
if (background) {
Log.i(getClass().getName(), "Background installation is not supported by default installer");
return;

View File

@@ -69,7 +69,7 @@ public class InstallerPrivileged extends InstallerAbstract {
}
@Override
protected void install(App app) {
public void install(App app) {
File apkFile = Downloader.getApkPath(app.getPackageName(), app.getVersionCode());
if (!apkFile.exists()) throw new IllegalArgumentException();
PackageManager pm = context.getPackageManager();

View File

@@ -11,7 +11,7 @@ public class InstallerRoot extends InstallerAbstract {
}
@Override
protected void install(App app) {
public void install(App app) {
new InstallTask(context, app.getDisplayName())
.execute(Downloader.getApkPath(app.getPackageName(), app.getVersionCode()).toString());
}

View File

@@ -9,6 +9,7 @@ import android.widget.EditText;
import android.widget.TextView;
import com.github.yeriomin.playstoreapi.AndroidAppDeliveryData;
import com.github.yeriomin.yalpstore.fragment.details.DownloadOrInstall;
import com.github.yeriomin.yalpstore.model.App;
import java.util.Timer;
@@ -38,7 +39,7 @@ public class ManualDownloadActivity extends DetailsActivity {
if (app.getVersionCode() > 0) {
((EditText) findViewById(R.id.version_code)).setHint(String.valueOf(app.getVersionCode()));
}
downloadOrInstallFragment = new DownloadOrInstallFragment(this, app);
downloadOrInstallFragment = new DownloadOrInstall(this, app);
ManualDownloadTextWatcher textWatcher = new ManualDownloadTextWatcher(
app,
(Button) findViewById(R.id.download),
@@ -57,10 +58,10 @@ public class ManualDownloadActivity extends DetailsActivity {
private final App app;
private final Button downloadButton;
private DownloadOrInstallFragment downloadOrInstallManager;
private DownloadOrInstall downloadOrInstallManager;
private Timer timer;
public ManualDownloadTextWatcher(App app, Button downloadButton, DownloadOrInstallFragment downloadOrInstallManager) {
public ManualDownloadTextWatcher(App app, Button downloadButton, DownloadOrInstall downloadOrInstallManager) {
this.app = app;
this.downloadButton = downloadButton;
this.downloadOrInstallManager = downloadOrInstallManager;

View File

@@ -7,6 +7,13 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceManager;
import com.github.yeriomin.yalpstore.fragment.preference.InstallationMethod;
import com.github.yeriomin.yalpstore.fragment.preference.Blacklist;
import com.github.yeriomin.yalpstore.fragment.preference.CheckUpdates;
import com.github.yeriomin.yalpstore.fragment.preference.Device;
import com.github.yeriomin.yalpstore.fragment.preference.Language;
import com.github.yeriomin.yalpstore.fragment.preference.Theme;
public class PreferenceActivity extends android.preference.PreferenceActivity {
public static final String PREFERENCE_EMAIL = "PREFERENCE_EMAIL";
@@ -77,20 +84,20 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
}
private void drawBlackList() {
PreferenceBlacklistFragment blacklistFragment = new PreferenceBlacklistFragment(this);
Blacklist blacklistFragment = new Blacklist(this);
blacklistFragment.setBlackOrWhite((ListPreference) findPreference(PREFERENCE_UPDATE_LIST_WHITE_OR_BLACK));
blacklistFragment.setAppList((MultiSelectListPreference) findPreference(PREFERENCE_UPDATE_LIST));
blacklistFragment.draw();
}
private void drawTheme() {
PreferenceThemeFragment themeFragment = new PreferenceThemeFragment(this);
Theme themeFragment = new Theme(this);
themeFragment.setThemePreference((ListPreference) findPreference(PREFERENCE_UI_THEME));
themeFragment.draw();
}
private void drawUpdatesCheck() {
PreferenceCheckUpdatesFragment checkUpdatesFragment = new PreferenceCheckUpdatesFragment(this);
CheckUpdates checkUpdatesFragment = new CheckUpdates(this);
checkUpdatesFragment.setCheckForUpdates((ListPreference) findPreference(PREFERENCE_BACKGROUND_UPDATE_INTERVAL));
checkUpdatesFragment.setAlsoInstall((CheckBoxPreference) findPreference(PREFERENCE_BACKGROUND_UPDATE_INSTALL));
checkUpdatesFragment.setAlsoDownload((CheckBoxPreference) findPreference(PREFERENCE_BACKGROUND_UPDATE_DOWNLOAD));
@@ -98,19 +105,19 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
}
private void drawLanguages() {
PreferenceLanguageFragment languageFragment = new PreferenceLanguageFragment(this);
Language languageFragment = new Language(this);
languageFragment.setListPreference((ListPreference) findPreference(PREFERENCE_REQUESTED_LANGUAGE));
languageFragment.draw();
}
private void drawDevices() {
PreferenceDeviceFragment languageFragment = new PreferenceDeviceFragment(this);
Device languageFragment = new Device(this);
languageFragment.setListPreference((ListPreference) findPreference(PREFERENCE_DEVICE_TO_PRETEND_TO_BE));
languageFragment.draw();
}
private void drawInstallationMethod() {
PreferenceInstallationMethodFragment installationMethodFragment = new PreferenceInstallationMethodFragment(this);
InstallationMethod installationMethodFragment = new InstallationMethod(this);
installationMethodFragment.setInstallationMethodPreference((ListPreference) findPreference(PREFERENCE_INSTALLATION_METHOD));
installationMethodFragment.draw();
}

View File

@@ -1,12 +0,0 @@
package com.github.yeriomin.yalpstore;
public abstract class PreferenceFragment {
protected PreferenceActivity activity;
abstract public void draw();
public PreferenceFragment(PreferenceActivity activity) {
this.activity = activity;
}
}

View File

@@ -6,6 +6,7 @@ import android.util.Log;
import android.widget.Button;
import com.github.yeriomin.playstoreapi.AndroidAppDeliveryData;
import com.github.yeriomin.yalpstore.fragment.details.DownloadOrInstall;
import com.github.yeriomin.yalpstore.model.App;
import java.io.IOException;
@@ -14,10 +15,10 @@ public class PurchaseCheckTask extends AsyncTask<Void, Void, AndroidAppDeliveryD
private Context context;
private App app;
private DownloadOrInstallFragment downloadOrInstallManager;
private DownloadOrInstall downloadOrInstallManager;
private Button downloadButton;
public PurchaseCheckTask(Context context, App app, DownloadOrInstallFragment downloadOrInstallManager) {
public PurchaseCheckTask(Context context, App app, DownloadOrInstall downloadOrInstallManager) {
this.context = context;
this.app = app;
this.downloadOrInstallManager = downloadOrInstallManager;

View File

@@ -4,28 +4,28 @@ import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.github.yeriomin.yalpstore.model.Review;
import com.github.yeriomin.yalpstore.fragment.details.Review;
import java.io.IOException;
class ReviewAddTask extends AsyncTask<Review, Void, Throwable> {
class ReviewAddTask extends AsyncTask<com.github.yeriomin.yalpstore.model.Review, Void, Throwable> {
private Context context;
private ReviewFragment manager;
private Review review;
private Review manager;
private com.github.yeriomin.yalpstore.model.Review review;
private String packageName;
public void setPackageName(String packageName) {
this.packageName = packageName;
}
ReviewAddTask(Context context, ReviewFragment manager) {
ReviewAddTask(Context context, Review manager) {
this.context = context;
this.manager = manager;
}
@Override
protected Throwable doInBackground(Review... params) {
protected Throwable doInBackground(com.github.yeriomin.yalpstore.model.Review... params) {
PlayStoreApiWrapper wrapper = new PlayStoreApiWrapper(context);
try {
review = wrapper.addOrEditReview(packageName, params[0]);

View File

@@ -4,14 +4,16 @@ import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.github.yeriomin.yalpstore.fragment.details.Review;
import java.io.IOException;
class ReviewDeleteTask extends AsyncTask<String, Void, Throwable> {
public class ReviewDeleteTask extends AsyncTask<String, Void, Throwable> {
private Context context;
private ReviewFragment manager;
private Review manager;
ReviewDeleteTask(Context context, ReviewFragment manager) {
public ReviewDeleteTask(Context context, Review manager) {
this.context = context;
this.manager = manager;
}

View File

@@ -2,24 +2,24 @@ package com.github.yeriomin.yalpstore;
import android.util.Log;
import com.github.yeriomin.yalpstore.model.Review;
import com.github.yeriomin.yalpstore.fragment.details.Review;
import java.util.List;
public class ReviewLoadTask extends GoogleApiAsyncTask {
private List<Review> list;
private List<com.github.yeriomin.yalpstore.model.Review> list;
private ReviewStorageIterator iterator;
private ReviewFragment manager;
private Review manager;
private boolean next;
public ReviewLoadTask(ReviewStorageIterator iterator, ReviewFragment manager, boolean next) {
public ReviewLoadTask(ReviewStorageIterator iterator, Review manager, boolean next) {
this.iterator = iterator;
this.manager = manager;
this.next = next;
}
public List<Review> getList() {
public List<com.github.yeriomin.yalpstore.model.Review> getList() {
return list;
}

View File

@@ -17,7 +17,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
class UpdatableAppsTask extends GoogleApiAsyncTask {
public class UpdatableAppsTask extends GoogleApiAsyncTask {
protected List<App> updatableApps = new ArrayList<>();
protected List<App> otherInstalledApps = new ArrayList<>();

View File

@@ -5,23 +5,23 @@ import android.content.Context;
import android.view.View;
import android.widget.EditText;
import com.github.yeriomin.yalpstore.model.Review;
import com.github.yeriomin.yalpstore.fragment.details.Review;
public class UserReviewDialogBuilder {
private Context context;
private ReviewFragment manager;
private Review manager;
private String packageName;
private Dialog dialog;
public UserReviewDialogBuilder(Context context, ReviewFragment manager, String packageName) {
public UserReviewDialogBuilder(Context context, Review manager, String packageName) {
this.context = context;
this.manager = manager;
this.packageName = packageName;
}
public Dialog show(final Review review) {
public Dialog show(final com.github.yeriomin.yalpstore.model.Review review) {
dialog = new Dialog(context);
dialog.setContentView(R.layout.review_dialog_layout);
@@ -52,9 +52,9 @@ public class UserReviewDialogBuilder {
private class DoneOnClickListener implements View.OnClickListener {
private final Review review;
private final com.github.yeriomin.yalpstore.model.Review review;
public DoneOnClickListener(Review review) {
public DoneOnClickListener(com.github.yeriomin.yalpstore.model.Review review) {
this.review = review;
}

View File

@@ -1,19 +1,21 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public abstract class DetailsFragment {
public abstract class Abstract {
protected DetailsActivity activity;
protected App app;
abstract public void draw();
public DetailsFragment(DetailsActivity activity, App app) {
public Abstract(DetailsActivity activity, App app) {
this.activity = activity;
this.app = app;
}

View File

@@ -1,16 +1,22 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.app.SearchManager;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.DetailsDependentActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.SearchResultActivity;
import com.github.yeriomin.yalpstore.SimilarAppsActivity;
import com.github.yeriomin.yalpstore.UsersAlsoInstalledActivity;
import com.github.yeriomin.yalpstore.model.App;
public class AppListsFragment extends DetailsFragment {
public class AppLists extends Abstract {
public AppListsFragment(DetailsActivity activity, App app) {
public AppLists(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -6,13 +6,16 @@ import android.net.Uri;
import android.view.View;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.PurchaseTask;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class BackToPlayStoreFragment extends DetailsFragment {
public class BackToPlayStore extends Abstract {
static private final String PLAY_STORE_PACKAGE_NAME = "com.android.vending";
public BackToPlayStoreFragment(DetailsActivity activity, App app) {
public BackToPlayStore(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,16 +1,16 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.pm.PackageManager;
import android.view.View;
import android.widget.Button;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.model.App;
public abstract class DetailsButtonFragment extends DetailsFragment {
public abstract class Button extends Abstract {
protected View button;
public DetailsButtonFragment(DetailsActivity activity, App app) {
public Button(DetailsActivity activity, App app) {
super(activity, app);
this.button = getButton();
}
@@ -32,7 +32,7 @@ public abstract class DetailsButtonFragment extends DetailsFragment {
}
protected void disableButton(int buttonId, int stringId) {
Button button = (Button) activity.findViewById(buttonId);
android.widget.Button button = (android.widget.Button) activity.findViewById(buttonId);
button.setText(stringId);
button.setEnabled(false);
}

View File

@@ -1,26 +1,30 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.Downloader;
import com.github.yeriomin.yalpstore.ManualDownloadActivity;
import com.github.yeriomin.yalpstore.PurchaseTask;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
import java.io.File;
public class DetailsButtonDownloadFragment extends DetailsButtonFragment {
public class ButtonDownload extends Button {
public DetailsButtonDownloadFragment(DetailsActivity activity, App app) {
public ButtonDownload(DetailsActivity activity, App app) {
super(activity, app);
}
@Override
protected Button getButton() {
return (Button) activity.findViewById(R.id.download);
protected android.widget.Button getButton() {
return (android.widget.Button) activity.findViewById(R.id.download);
}
@Override

View File

@@ -1,27 +1,31 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.app.NotificationManager;
import android.content.Context;
import android.view.View;
import android.widget.Button;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.Downloader;
import com.github.yeriomin.yalpstore.InstallerDefault;
import com.github.yeriomin.yalpstore.InstallerFactory;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class DetailsButtonInstallFragment extends DetailsButtonFragment {
public class ButtonInstall extends Button {
public DetailsButtonInstallFragment(DetailsActivity activity, App app) {
public ButtonInstall(DetailsActivity activity, App app) {
super(activity, app);
}
@Override
public void draw() {
super.draw();
((Button) button).setText(R.string.details_install);
((android.widget.Button) button).setText(R.string.details_install);
}
@Override
protected Button getButton() {
return (Button) activity.findViewById(R.id.install);
protected android.widget.Button getButton() {
return (android.widget.Button) activity.findViewById(R.id.install);
}
@Override
@@ -37,7 +41,7 @@ public class DetailsButtonInstallFragment extends DetailsButtonFragment {
disableButton(R.id.install, R.string.details_installing);
NotificationManager manager = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE);
manager.cancel(app.getDisplayName().hashCode());
InstallerFactory.get(activity).install(app);
new InstallerDefault(activity).install(app);
}
};
}

View File

@@ -1,20 +1,21 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class DetailsButtonRunFragment extends DetailsButtonFragment {
public class ButtonRun extends Button {
public DetailsButtonRunFragment(DetailsActivity activity, App app) {
public ButtonRun(DetailsActivity activity, App app) {
super(activity, app);
}
@Override
protected Button getButton() {
return (Button) activity.findViewById(R.id.run);
protected android.widget.Button getButton() {
return (android.widget.Button) activity.findViewById(R.id.run);
}
@Override

View File

@@ -1,14 +1,18 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import com.github.yeriomin.yalpstore.CheckShellTask;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.UninstallSystemAppTask;
import com.github.yeriomin.yalpstore.model.App;
public class DetailsButtonUninstallFragment extends DetailsButtonFragment {
public class ButtonUninstall extends Button {
public DetailsButtonUninstallFragment(DetailsActivity activity, App app) {
public ButtonUninstall(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -10,11 +10,20 @@ import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;
import com.github.yeriomin.yalpstore.BuildConfig;
import com.github.yeriomin.yalpstore.CheckShellTask;
import com.github.yeriomin.yalpstore.ConvertToNormalTask;
import com.github.yeriomin.yalpstore.ConvertToSystemTask;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.InstalledApkCopier;
import com.github.yeriomin.yalpstore.ManualDownloadActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.SystemRemountTask;
import com.github.yeriomin.yalpstore.model.App;
public class DownloadOptionsFragment extends DetailsFragment {
public class DownloadOptions extends Abstract {
public DownloadOptionsFragment(DetailsActivity activity, App app) {
public DownloadOptions(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,26 +1,29 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.DetailsDownloadReceiver;
import com.github.yeriomin.yalpstore.DetailsInstallReceiver;
import com.github.yeriomin.yalpstore.model.App;
public class DownloadOrInstallFragment extends DetailsFragment {
public class DownloadOrInstall extends Abstract {
private DetailsDownloadReceiver downloadReceiver;
private DetailsInstallReceiver installReceiver;
public DownloadOrInstallFragment(DetailsActivity activity, App app) {
public DownloadOrInstall(DetailsActivity activity, App app) {
super(activity, app);
}
@Override
public void draw() {
new DetailsButtonUninstallFragment(activity, app).draw();
new DetailsButtonDownloadFragment(activity, app).draw();
new DetailsButtonInstallFragment(activity, app).draw();
new DetailsButtonRunFragment(activity, app).draw();
new ButtonUninstall(activity, app).draw();
new ButtonDownload(activity, app).draw();
new ButtonInstall(activity, app).draw();
new ButtonRun(activity, app).draw();
}
public void download() {
new DetailsButtonDownloadFragment(activity, app).download();
new ButtonDownload(activity, app).download();
}
public void unregisterReceivers() {

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -12,15 +12,19 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.CategoryManager;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.LoadIconTask;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class GeneralDetailsFragment extends DetailsFragment {
public class GeneralDetails extends Abstract {
public GeneralDetailsFragment(DetailsActivity activity, App app) {
public GeneralDetails(DetailsActivity activity, App app) {
super(activity, app);
}
@@ -32,7 +36,7 @@ public class GeneralDetailsFragment extends DetailsFragment {
}
drawDescription(app);
drawPermissions(app);
new GoogleDependencyFragment(activity, app).draw();
new GoogleDependency(activity, app).draw();
}
private void drawAppBadge(App app) {

View File

@@ -1,19 +1,23 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.DependencyTranslationTask;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.SharedPreferencesTranslator;
import com.github.yeriomin.yalpstore.model.App;
import java.util.HashSet;
import java.util.Set;
public class GoogleDependencyFragment extends DetailsFragment {
public class GoogleDependency extends Abstract {
private SharedPreferencesTranslator translator;
public GoogleDependencyFragment(DetailsActivity activity, App app) {
public GoogleDependency(DetailsActivity activity, App app) {
super(activity, app);
translator = new SharedPreferencesTranslator(PreferenceManager.getDefaultSharedPreferences(activity));
}

View File

@@ -1,13 +1,17 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuItem;
import com.github.yeriomin.yalpstore.BlackWhiteListManager;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class IgnoreOptionFragment extends DetailsFragment {
public class IgnoreOption extends Abstract {
private Menu menu;
@@ -28,7 +32,7 @@ public class IgnoreOptionFragment extends DetailsFragment {
this.menu = menu;
}
public IgnoreOptionFragment(DetailsActivity activity, App app) {
public IgnoreOption(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.preference.PreferenceManager;
import android.text.TextUtils;
@@ -9,18 +9,26 @@ import android.widget.LinearLayout;
import android.widget.RatingBar;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.AccountTypeDialogBuilder;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.ImageDownloadTask;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.ReviewDeleteTask;
import com.github.yeriomin.yalpstore.ReviewLoadTask;
import com.github.yeriomin.yalpstore.ReviewStorageIterator;
import com.github.yeriomin.yalpstore.UserReviewDialogBuilder;
import com.github.yeriomin.yalpstore.model.App;
import com.github.yeriomin.yalpstore.model.Review;
import java.util.List;
public class ReviewFragment extends DetailsFragment {
public class Review extends Abstract {
static private int[] averageStarIds = new int[] { R.id.average_stars1, R.id.average_stars2, R.id.average_stars3, R.id.average_stars4, R.id.average_stars5 };
private ReviewStorageIterator iterator;
public ReviewFragment(DetailsActivity activity, App app) {
public Review(DetailsActivity activity, App app) {
super(activity, app);
iterator = new ReviewStorageIterator();
iterator.setPackageName(app.getPackageName());
@@ -47,7 +55,7 @@ public class ReviewFragment extends DetailsFragment {
}
activity.findViewById(R.id.user_review_container).setVisibility(isReviewable(app) ? View.VISIBLE : View.GONE);
Review review = app.getUserReview();
com.github.yeriomin.yalpstore.model.Review review = app.getUserReview();
initUserReviewControls(app);
if (null != review) {
fillUserReview(review);
@@ -61,7 +69,7 @@ public class ReviewFragment extends DetailsFragment {
;
}
public void fillUserReview(Review review) {
public void fillUserReview(com.github.yeriomin.yalpstore.model.Review review) {
clearUserReview();
app.setUserReview(review);
((RatingBar) activity.findViewById(R.id.user_stars)).setRating(review.getRating());
@@ -81,8 +89,8 @@ public class ReviewFragment extends DetailsFragment {
activity.findViewById(R.id.user_review).setVisibility(View.GONE);
}
private Review getUpdatedUserReview(Review oldReview, int stars) {
Review review = new Review();
private com.github.yeriomin.yalpstore.model.Review getUpdatedUserReview(com.github.yeriomin.yalpstore.model.Review oldReview, int stars) {
com.github.yeriomin.yalpstore.model.Review review = new com.github.yeriomin.yalpstore.model.Review();
review.setRating(stars);
if (null != oldReview) {
review.setComment(oldReview.getComment());
@@ -91,12 +99,12 @@ public class ReviewFragment extends DetailsFragment {
return review;
}
public void showReviews(List<Review> reviews) {
public void showReviews(List<com.github.yeriomin.yalpstore.model.Review> reviews) {
activity.findViewById(R.id.reviews_previous).setVisibility(iterator.hasPrevious() ? View.VISIBLE : View.INVISIBLE);
activity.findViewById(R.id.reviews_next).setVisibility(iterator.hasNext() ? View.VISIBLE : View.INVISIBLE);
LinearLayout listView = (LinearLayout) activity.findViewById(R.id.reviews_list);
listView.removeAllViews();
for (Review review: reviews) {
for (com.github.yeriomin.yalpstore.model.Review review: reviews) {
addReviewToList(review, listView);
}
}
@@ -108,7 +116,7 @@ public class ReviewFragment extends DetailsFragment {
return task;
}
private void addReviewToList(Review review, ViewGroup parent) {
private void addReviewToList(com.github.yeriomin.yalpstore.model.Review review, ViewGroup parent) {
LinearLayout reviewLayout = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.review_list_item, parent, false);
((TextView) reviewLayout.findViewById(R.id.author)).setText(review.getUserName());
((TextView) reviewLayout.findViewById(R.id.title)).setText(activity.getString(
@@ -141,21 +149,21 @@ public class ReviewFragment extends DetailsFragment {
if (!fromUser) {
return;
}
new UserReviewDialogBuilder(activity, ReviewFragment.this, app.getPackageName())
new UserReviewDialogBuilder(activity, Review.this, app.getPackageName())
.show(getUpdatedUserReview(app.getUserReview(), (int) rating));
}
});
activity.findViewById(R.id.user_review_edit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new UserReviewDialogBuilder(activity, ReviewFragment.this, app.getPackageName())
new UserReviewDialogBuilder(activity, Review.this, app.getPackageName())
.show(app.getUserReview());
}
});
activity.findViewById(R.id.user_review_delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ReviewDeleteTask task = new ReviewDeleteTask(v.getContext(), ReviewFragment.this);
ReviewDeleteTask task = new ReviewDeleteTask(v.getContext(), Review.this);
task.execute(app.getPackageName());
}
});

View File

@@ -1,15 +1,19 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.FullscreenImageActivity;
import com.github.yeriomin.yalpstore.ImageAdapter;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class ScreenshotFragment extends DetailsFragment {
public class Screenshot extends Abstract {
public ScreenshotFragment(DetailsActivity activity, App app) {
public Screenshot(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.details;
import android.content.ActivityNotFoundException;
import android.content.Intent;
@@ -8,11 +8,13 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.github.yeriomin.yalpstore.DetailsActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
public class SystemAppPageFragment extends DetailsFragment {
public class SystemAppPage extends Abstract {
public SystemAppPageFragment(DetailsActivity activity, App app) {
public SystemAppPage(DetailsActivity activity, App app) {
super(activity, app);
}

View File

@@ -0,0 +1,14 @@
package com.github.yeriomin.yalpstore.fragment.preference;
import com.github.yeriomin.yalpstore.PreferenceActivity;
public abstract class Abstract {
protected PreferenceActivity activity;
abstract public void draw();
public Abstract(PreferenceActivity activity) {
this.activity = activity;
}
}

View File

@@ -1,19 +1,25 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.ListPreference;
import android.preference.Preference;
import com.github.yeriomin.yalpstore.MultiSelectListPreference;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.UpdatableAppsActivity;
import com.github.yeriomin.yalpstore.UpdatableAppsTask;
import com.github.yeriomin.yalpstore.Util;
import com.github.yeriomin.yalpstore.model.App;
import java.util.HashMap;
import java.util.Map;
public class PreferenceBlacklistFragment extends PreferenceFragment {
public class Blacklist extends Abstract {
private ListPreference blackOrWhite;
private MultiSelectListPreference appList;
public PreferenceBlacklistFragment(PreferenceActivity activity) {
public Blacklist(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.Manifest;
import android.content.pm.PackageManager;
@@ -6,13 +6,19 @@ import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
public class PreferenceCheckUpdatesFragment extends PreferenceFragment {
import com.github.yeriomin.yalpstore.BuildConfig;
import com.github.yeriomin.yalpstore.CheckSuTask;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.UpdateChecker;
public class CheckUpdates extends Abstract {
private ListPreference checkForUpdates;
private CheckBoxPreference alsoInstall;
private CheckBoxPreference alsoDownload;
public PreferenceCheckUpdatesFragment(PreferenceActivity activity) {
public CheckUpdates(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,14 +1,20 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.Preference;
import android.widget.Toast;
import com.github.yeriomin.yalpstore.OnListPreferenceChangeListener;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.SpoofDeviceManager;
import com.github.yeriomin.yalpstore.Util;
import java.util.LinkedHashMap;
import java.util.Map;
public class PreferenceDeviceFragment extends PreferenceListFragment {
public class Device extends List {
public PreferenceDeviceFragment(PreferenceActivity activity) {
public Device(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,13 +1,15 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.ListPreference;
import android.preference.Preference;
public class PreferenceInstallationMethodFragment extends PreferenceFragment {
import com.github.yeriomin.yalpstore.PreferenceActivity;
public class InstallationMethod extends Abstract {
private ListPreference installationMethod;
public PreferenceInstallationMethodFragment(PreferenceActivity activity) {
public InstallationMethod(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,16 +1,22 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.Preference;
import com.github.yeriomin.yalpstore.OnListPreferenceChangeListener;
import com.github.yeriomin.yalpstore.PlayStoreApiAuthenticator;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.Util;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
public class PreferenceLanguageFragment extends PreferenceListFragment {
public class Language extends List {
public PreferenceLanguageFragment(PreferenceActivity activity) {
public Language(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,17 +1,20 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.ListPreference;
import com.github.yeriomin.yalpstore.OnListPreferenceChangeListener;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import java.util.Map;
public abstract class PreferenceListFragment extends PreferenceFragment {
public abstract class List extends Abstract {
protected ListPreference listPreference;
abstract protected Map<String, String> getKeyValueMap();
abstract protected OnListPreferenceChangeListener getOnListPreferenceChangeListener();
public PreferenceListFragment(PreferenceActivity activity) {
public List(PreferenceActivity activity) {
super(activity);
}

View File

@@ -1,4 +1,4 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.Manifest;
import android.content.pm.PackageInfo;
@@ -7,6 +7,12 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.widget.Toast;
import com.github.yeriomin.yalpstore.BuildConfig;
import com.github.yeriomin.yalpstore.CheckShellTask;
import com.github.yeriomin.yalpstore.CheckSuTask;
import com.github.yeriomin.yalpstore.ConvertToSystemTask;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
import com.github.yeriomin.yalpstore.model.App;
class OnInstallationMethodChangeListener implements Preference.OnPreferenceChangeListener {

View File

@@ -1,13 +1,16 @@
package com.github.yeriomin.yalpstore;
package com.github.yeriomin.yalpstore.fragment.preference;
import android.preference.ListPreference;
import android.preference.Preference;
public class PreferenceThemeFragment extends PreferenceFragment {
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.R;
public class Theme extends Abstract {
private ListPreference themePreference;
public PreferenceThemeFragment(PreferenceActivity activity) {
public Theme(PreferenceActivity activity) {
super(activity);
}