package com.softwinner.launcher.ui;
import com.softwinner.launcher.ApplicationInfo;
import com.softwinner.launcher.Launcher;
import com.softwinner.launcher.LauncherApplication;
import com.softwinner.launcher.LauncherModel;
import com.softwinner.launcher.R;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.GridView;
import java.util.ArrayList;
public class FavoritesApps2D extends AllApps2D {
LauncherModel mModel;
private View mDelBtn;
private View mUninstallBtn;
private View.OnClickListener mMenuEvent = new View.OnClickListener(){
@Override
public void onClick(View v) {
View selected = mGrid.getSelectedView();
if(selected == null){
return;
}
int position = mGrid.getPositionForView(selected);
ApplicationInfo app = (ApplicationInfo) mGrid.getItemAtPosition(position);
if(v.equals(mDelBtn)){
LauncherModel.delFavoritesAppFromDataBase(getContext(), app.componentName);
}else if(v.equals(mUninstallBtn)){
Uri packageURI = Uri.parse("package:" + app.componentName.getPackageName());
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
LauncherApplication.getLauncher().startActivity(uninstallIntent);
}
mMenuDialog.dismiss();
}
};
public FavoritesApps2D(Context context, AttributeSet attrs) {
super(context, attrs);
mModel = LauncherApplication.getModel();
}
@Override
public void setApps(ArrayList<ApplicationInfo> list) {
Log.d("filter","step");
ArrayList<ApplicationInfo> filter = null;
if(mModel != null){
filter = mModel.appFiltrate(list, false);
}
super.setApps(filter);
}
@Override
public void addApps(ArrayList<ApplicationInfo> list) {
ArrayList<ApplicationInfo> filter = null;
if(mModel != null){
filter = mModel.appFiltrate(list, false);
}
super.addApps(filter);
}
@Override
public void removeApps(ArrayList<ApplicationInfo> list) {
ArrayList<ApplicationInfo> filter = null;
if(mModel != null){
filter = mModel.appFiltrate(list, false);
}
super.removeApps(filter);
}
@Override
public void updateApps(ArrayList<ApplicationInfo> list) {
ArrayList<ApplicationInfo> filter = null;
if(mModel != null){
filter = mModel.appFiltrate(list, false);
}
super.updateApps(filter);
}
@Override
public Dialog createMenuDialog(Context context,ApplicationInfo app){
Dialog dialog = new Dialog(context,R.style.menu_dialog);
Window win = dialog.getWindow();
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.y = 99999;
params.x = 0;
win.setAttributes(params);
dialog.setCanceledOnTouchOutside(true);
LayoutInflater inflater = dialog.getLayoutInflater();
View content = inflater.inflate(R.layout.favorites_apps_menu, null);
mDelBtn = content.findViewById(R.id.del_from_favorites);
mUninstallBtn = content.findViewById(R.id.uninstall_app);
if(mDelBtn != null){
mDelBtn.setOnClickListener(mMenuEvent);
}
if(mUninstallBtn != null){
mUninstallBtn.setOnClickListener(mMenuEvent);
}
dialog.setContentView(content);
return dialog;
}
}