Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Teja Vojjala committed Feb 14, 2017
1 parent b932e1b commit 46cd6c2
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 4 deletions.
1 change: 1 addition & 0 deletions source-code/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ dependencies {
compile files('libs/kellinwood-logging-android-1.4.jar')
compile files('libs/kellinwood-logging-lib-1.1.jar')
compile files('libs/kellinwood-logging-log4j-1.0.jar')
compile 'com.baoyz.swipemenulistview:library:1.3.0'
compile files('libs/axml.jar')
compile files('libs/pkix-1.51.0.0.jar')
compile files('libs/core-1.51.0.0.jar')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@

import android.app.Activity;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
Expand All @@ -29,12 +34,21 @@
import android.widget.EditText;
import android.widget.Toast;

import com.baoyz.swipemenulistview.SwipeMenu;
import com.baoyz.swipemenulistview.SwipeMenuCreator;
import com.baoyz.swipemenulistview.SwipeMenuItem;
import com.baoyz.swipemenulistview.SwipeMenuListView;

import org.buildmlearn.toolkit.R;
import org.buildmlearn.toolkit.ToolkitApplication;
import org.buildmlearn.toolkit.activity.DeepLinkerActivity;
import org.buildmlearn.toolkit.adapter.SavedApiAdapter;
import org.buildmlearn.toolkit.model.SavedApi;
import org.buildmlearn.toolkit.utilities.RestoreThread;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
Expand All @@ -48,7 +62,7 @@
public class LoadApkFragment extends Fragment implements AbsListView.OnItemClickListener {

private static final String TAG = "Load API Fragment";
private AbsListView mListView;
private SwipeMenuListView mListView;

private boolean showTemplateSelectedMenu;
private SavedApiAdapter mAdapter;
Expand Down Expand Up @@ -128,7 +142,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mAdapter = new SavedApiAdapter(getActivity(), savedApis);
mListView = (AbsListView) view.findViewById(android.R.id.list);
mListView = (SwipeMenuListView) view.findViewById(android.R.id.list);
setAdapter(mAdapter);
mListView.setOnItemClickListener(this);
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
Expand All @@ -137,7 +151,7 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
if (mAdapter.isPositionSelected(position)) {
mAdapter.removeSelectedPosition(position);
view.setBackgroundResource(0);
if(mAdapter.selectedPositionsSize()==0)
if(mAdapter.selectedPositionsSize() == 0)
restoreColorScheme();
} else {
view.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.color_divider));
Expand All @@ -147,7 +161,34 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
return true;
}
});
SwipeMenuCreator creator = new SwipeMenuCreator() {

@Override
public void create(SwipeMenu menu) {
SwipeMenuItem openItem = new SwipeMenuItem(getActivity().getApplicationContext());
openItem.setBackground(new ColorDrawable(Color.rgb(169,169,169)));
openItem.setWidth((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 90,
getActivity().getResources().getDisplayMetrics()));
openItem.setTitle("Restore Project");
openItem.setTitleSize(18);
openItem.setTitleColor(Color.WHITE);
menu.addMenuItem(openItem);
}
};

mListView.setMenuCreator(creator);
mListView.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);
mListView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
switch (index) {
case 0:
restoreApk(position);
break;
}
return false;
}
});
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
Expand Down Expand Up @@ -434,6 +475,93 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
return super.onOptionsItemSelected(item);
}

public void restoreApk(int position){
try {
final ProgressDialog processDialog = new ProgressDialog(getActivity(), R.style.AppDialogTheme);
processDialog.setTitle(R.string.restore_progress_dialog);
processDialog.setMessage(getActivity().getString(R.string.restore_msg));
processDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
processDialog.setCancelable(false);
processDialog.setProgress(0);
processDialog.show();

InputStream inputStream = new FileInputStream(savedApis.get(position).getFile());
RestoreThread restore = new RestoreThread(getActivity(), inputStream);

restore.setRestoreListener(new RestoreThread.OnRestoreComplete() {
Handler mHandler =new Handler(Looper.getMainLooper());
@Override
public void onSuccess(final File assetFile) {
mHandler.post(new Runnable() {
@Override
public void run() {
processDialog.dismiss();
Intent intentProject = new Intent(getActivity(), DeepLinkerActivity.class);
intentProject.setData(Uri.fromFile(assetFile));
getActivity().startActivity(intentProject);
}
});
}

@Override
public void onFail() {
mHandler.post(new Runnable() {
@Override
public void run() {
processDialog.dismiss();
final AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_restore_title)
.setMessage(R.string.dialog_restore_failed)
.setPositiveButton(R.string.info_template_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
dialog.show();
}
});
}

@Override
public void onFail(Exception e) {
mHandler.post(new Runnable() {
@Override
public void run() {
processDialog.dismiss();
final AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_restore_title)
.setMessage(R.string.dialog_restore_failed)
.setPositiveButton(R.string.info_template_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
dialog.show();
}
});
}
});

restore.start();

} catch (Exception e) {
e.printStackTrace();

final AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_restore_title)
.setMessage(R.string.dialog_restore_fileerror)
.setPositiveButton(R.string.info_template_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
dialog.show();
}
}

public void unselectAll() {
for (int i = 0; i < mAdapter.getCount(); i++)
if (mAdapter.isPositionSelected(i)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
xmlns:fab="http://schemas.android.com/apk/res-auto"
tools:context="org.buildmlearn.toolkit.fragment.LoadProjectFragment">

<ListView
<com.baoyz.swipemenulistview.SwipeMenuListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand Down

0 comments on commit 46cd6c2

Please sign in to comment.