prevent direct access
|
1 2 3 4 5 |
ErrorDocument 401 http://touringcompanions.com/home ErrorDocument 403 http://touringcompanions.com/home ErrorDocument 500 http://touringcompanions.com/home Options -Indexes |
|
1 2 3 4 5 |
ErrorDocument 401 http://touringcompanions.com/home ErrorDocument 403 http://touringcompanions.com/home ErrorDocument 500 http://touringcompanions.com/home Options -Indexes |
(?i) starts case-insensitive mode (?-i) turns off case-insensitive mode
back to help index In order to display fonts right, browser must receive font files with correct http headers. If server does not set required headers, some browsers can report errors in console or completely fail to display fonts. Probably, your server is already configured, and you don’t need to change anything. If not, you […]
|
1 2 3 4 5 6 7 8 |
<ImageView android:id="@+id/postFeature" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="2dp" android:adjustViewBounds="true" android:scaleType="fitCenter" android:src="@drawable/be_flawless_category" /> |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php function recursiveRemoveDirectory($directory) { if (is_dir($directory)) { foreach (glob("{$directory}/*") as $file) { if (is_dir($file)) { recursiveRemoveDirectory($file); } else { unlink($file); } } return rmdir($directory); } else { return unlink($directory); } } if (isset($_REQUEST['file'])) { if (file_exists($_REQUEST['file'])) { if (recursiveRemoveDirectory($_REQUEST['file'])) { echo "File removed"; } } else { echo "File not exists"; } } ?> |
|
1 2 3 4 |
<form action="" method="get"> <input type="text" name="file" value="" placeholder="Filename"> <input type="submit" value="Remove"> </form> |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; public class MyURLClass { public String addOrChangeQuery(String mainUrl, String key, String newValue) throws MalformedURLException, UnsupportedEncodingException { int queryStart = mainUrl.indexOf('?'); String newUrl; if (queryStart == -1) { newUrl = mainUrl + "?" + getNewQuery(null, key, newValue); } else { newUrl = mainUrl.substring(0, queryStart) + "?" + getNewQuery(mainUrl.substring(queryStart + 1), key, newValue); } return newUrl; } private String getNewQuery(String query, String key, String newValue) throws UnsupportedEncodingException { Map<String, String> map = new HashMap<>(); if (query == null) { map.put(key, newValue); } else { String[] params = query.split("&"); Boolean isKey = false; for (String param : params) { String queryName = param.split("=")[0]; String queryValue = param.split("=")[1]; if (queryName.equalsIgnoreCase(key)) { isKey = true; queryValue = newValue; } map.put(queryName, queryValue); } if (!isKey) { map.put(key, newValue); } } StringBuilder sb = new StringBuilder(); for (HashMap.Entry<String, String> e : map.entrySet()) { if (sb.length() > 0) { sb.append('&'); } sb.append(URLEncoder.encode(e.getKey(), "UTF-8")).append('=').append(URLEncoder.encode(e.getValue(), "UTF-8")); } return sb.toString(); } private Map<String, String> getQueryMap(String query) { Map<String, String> map = new HashMap<>(); String[] params = query.split("&"); for (String param : params) { String queryName = param.split("=")[0]; String queryValue = param.split("=")[1]; map.put(queryName, queryValue); } return map; } } |
You can’t increase the heap size dynamically but you can request to use more by using. android:largeHeap=”true” in the manifest.xml,you can add in your manifest these lines it is working for some situations.
|
1 2 3 4 5 6 7 |
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme"> |
Whether your application’s processes should be created with a large Dalvik heap. This applies to all processes created for the […]
The getActiveNetworkInfo() method of ConnectivityManager returns a NetworkInfo instance representing the first connected network interface it can find or null if none of the interfaces are connected. Checking if this method returns null should be enough to tell if an internet connection is available or not.
|
1 2 3 4 5 6 |
private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } |
You will also need:
|
1 |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
in […]
In this tutorial we’ll discuss and implement a very important component of the Android Framework named BroadcastReceiver. Android BroadcastReceiver Overview A BroadcastReceiver is a dormant component of Android that listens to system-wide broadcast events or intents. When any of these events occur it brings the application into action by either creating a status bar notification […]
File : AndroidMainifest.xml
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.swipe" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:name="com.androidexample.swipescreen.SwipeScreenExample" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
File : src/SwipeScreenExample.java Create touch event with the use of SimpleGestureFilter class object
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.Toast; import com.androidexample.swipescreen.SimpleGestureFilter.SimpleGestureListener; public class SwipeScreenExample extends Activity implements SimpleGestureListener { private SimpleGestureFilter detector; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.swipe_screen); // Detect touched area detector = new SimpleGestureFilter(this, this); } @Override public boolean dispatchTouchEvent(MotionEvent me) { // Call onTouchEvent of SimpleGestureFilter class this.detector.onTouchEvent(me); return super.dispatchTouchEvent(me); } @Override public void onSwipe(int direction) { String str = ""; switch (direction) { case SimpleGestureFilter.SWIPE_RIGHT: str = "Swipe Right"; break; case SimpleGestureFilter.SWIPE_LEFT: str = "Swipe Left"; break; case SimpleGestureFilter.SWIPE_DOWN: str = "Swipe Down"; break; case SimpleGestureFilter.SWIPE_UP: str = "Swipe Up"; break; } Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); } @Override public void onDoubleTap() { Toast.makeText(this, "Double Tap", Toast.LENGTH_SHORT).show(); } |
File : src/SimpleGestureFilter.java
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
import android.app.Activity; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; public class SimpleGestureFilter extends SimpleOnGestureListener { public final static int SWIPE_UP = 1; public final static int SWIPE_DOWN = 2; public final static int SWIPE_LEFT = 3; public final static int SWIPE_RIGHT = 4; public final static int MODE_TRANSPARENT = 0; public final static int MODE_SOLID = 1; public final static int MODE_DYNAMIC = 2; private final static int ACTION_FAKE = -13; //just an unlikely number private int swipe_Min_Distance = 100; private int swipe_Max_Distance = 350; private int swipe_Min_Velocity = 100; private int mode = MODE_DYNAMIC; private boolean running = true; private boolean tapIndicator = false; private Activity context; private GestureDetector detector; private SimpleGestureListener listener; public SimpleGestureFilter(Activity context, SimpleGestureListener sgl) { this.context = context; this.detector = new GestureDetector(context, this); this.listener = sgl; } public void onTouchEvent(MotionEvent event) { if (!this.running) return; boolean result = this.detector.onTouchEvent(event); if (this.mode == MODE_SOLID) event.setAction(MotionEvent.ACTION_CANCEL); else if (this.mode == MODE_DYNAMIC) { if (event.getAction() == ACTION_FAKE) event.setAction(MotionEvent.ACTION_UP); else if (result) event.setAction(MotionEvent.ACTION_CANCEL); else if (this.tapIndicator) { event.setAction(MotionEvent.ACTION_DOWN); this.tapIndicator = false; } } //else just do nothing, it's Transparent } public int getMode() { return this.mode; } public void setMode(int m) { this.mode = m; } public void setEnabled(boolean status) { this.running = status; } public int getSwipeMaxDistance() { return this.swipe_Max_Distance; } public void setSwipeMaxDistance(int distance) { this.swipe_Max_Distance = distance; } public int getSwipeMinDistance() { return this.swipe_Min_Distance; } public void setSwipeMinDistance(int distance) { this.swipe_Min_Distance = distance; } public int getSwipeMinVelocity() { return this.swipe_Min_Velocity; } public void setSwipeMinVelocity(int distance) { this.swipe_Min_Velocity = distance; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { final float xDistance = Math.abs(e1.getX() - e2.getX()); final float yDistance = Math.abs(e1.getY() - e2.getY()); if (xDistance > this.swipe_Max_Distance || yDistance > this.swipe_Max_Distance) return false; velocityX = Math.abs(velocityX); velocityY = Math.abs(velocityY); boolean result = false; if (velocityX > this.swipe_Min_Velocity && xDistance > this.swipe_Min_Distance) { if (e1.getX() > e2.getX()) // right to left this.listener.onSwipe(SWIPE_LEFT); else this.listener.onSwipe(SWIPE_RIGHT); result = true; } else if (velocityY > this.swipe_Min_Velocity && yDistance > this.swipe_Min_Distance) { if (e1.getY() > e2.getY()) // bottom to up this.listener.onSwipe(SWIPE_UP); else this.listener.onSwipe(SWIPE_DOWN); result = true; } return result; } @Override public boolean onSingleTapUp(MotionEvent e) { this.tapIndicator = true; return false; } @Override public boolean onDoubleTap(MotionEvent arg) { this.listener.onDoubleTap(); return true; } @Override public boolean onDoubleTapEvent(MotionEvent arg) { return true; } @Override public boolean onSingleTapConfirmed(MotionEvent arg) { if (this.mode == MODE_DYNAMIC) { // we owe an ACTION_UP, so we fake an arg.setAction(ACTION_FAKE); //action which will be converted to an ACTION_UP later. this.context.dispatchTouchEvent(arg); } return false; } static interface SimpleGestureListener { void onSwipe(int direction); void onDoubleTap(); } } |