package dev.ukanth.ufirewall.ui.about; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.GestureDetector; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.widget.TextView; import android.widget.Toast; import java.io.IOException; import dev.ukanth.ufirewall.Api; import dev.ukanth.ufirewall.R; import dev.ukanth.ufirewall.util.G; public class AboutFragment extends Fragment { private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200; private GestureDetector gestureDetector; View.OnTouchListener gestureListener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) { View view = inflater.inflate(R.layout.help_about_content, group, false); ActivitySwipeDetector swipe = new ActivitySwipeDetector(); view.findViewById(R.id.about_thirdsparty_credits).setOnTouchListener(swipe); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); PackageInfo pInfo = null; String version = ""; try { pInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0); } catch (NameNotFoundException e) { Log.e(Api.TAG, "Package not found", e); } version = pInfo.versionName; TextView text = (TextView) getActivity().findViewById(R.id.afwall_title); String versionText = getString(R.string.app_name) + " (v" + version + ")"; if(G.isDo(getActivity().getApplicationContext()) || Api.getCurrentPackage(getActivity().getApplicationContext()).equals("dev.ukanth.ufirewall.donate")) { versionText = versionText + " (Donate) " + getActivity().getString(R.string.donate_thanks)+ ":)"; } text.setText(versionText); WebView creditsWebView = (WebView) getActivity().findViewById(R.id.about_thirdsparty_credits); try { String data = Api.loadData(getActivity().getBaseContext(), "about"); creditsWebView.loadDataWithBaseURL(null, data, "text/html","UTF-8",null); } catch (IOException ioe) { Log.e(Api.TAG, "Error reading changelog file!", ioe); } } interface SwipeInterface { public void bottom2top(View v); public void left2right(View v); public void right2left(View v); public void top2bottom(View v); } class ActivitySwipeDetector implements View.OnTouchListener { static final String logTag = "ActivitySwipeDetector"; static final int MIN_DISTANCE = 100; private float downX, downY, upX, upY; public ActivitySwipeDetector() { } public void onRightToLeftSwipe(View v) { Log.i(logTag, "RightToLeftSwipe!"); } public void onLeftToRightSwipe(View v){ Log.i(logTag, "LeftToRightSwipe!"); } public void onTopToBottomSwipe(View v){ Log.i(logTag, "onTopToBottomSwipe!"); } public void onBottomToTopSwipe(View v){ Log.i(logTag, "onBottomToTopSwipe!"); Toast.makeText(getActivity(),"Swipe Works great",Toast.LENGTH_LONG).show(); } public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()){ case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); return true; } case MotionEvent.ACTION_UP: { upX = event.getX(); upY = event.getY(); float deltaX = downX - upX; float deltaY = downY - upY; // swipe horizontal? if(Math.abs(deltaX) > MIN_DISTANCE){ // left or right if(deltaX < 0) { this.onLeftToRightSwipe(v); return true; } if(deltaX > 0) { this.onRightToLeftSwipe(v); return true; } } else { Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE); } // swipe vertical? if(Math.abs(deltaY) > MIN_DISTANCE){ // top or down if(deltaY < 0) { this.onTopToBottomSwipe(v); return true; } if(deltaY > 0) { this.onBottomToTopSwipe(v); return true; } } else { Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE); v.performClick(); } } } return false; } } }