Full Code of Joisar/LockScreenApp for AI

master 2470502ba5ae cached
20 files
18.5 KB
5.2k tokens
35 symbols
1 requests
Download .txt
Repository: Joisar/LockScreenApp
Branch: master
Commit: 2470502ba5ae
Files: 20
Total size: 18.5 KB

Directory structure:
gitextract_y21tkzuy/

├── LockScreenApp/
│   ├── .classpath
│   ├── .project
│   ├── .settings/
│   │   └── org.eclipse.jdt.core.prefs
│   ├── AndroidManifest.xml
│   ├── libs/
│   │   └── android-support-v4.jar
│   ├── proguard.cfg
│   ├── project.properties
│   ├── res/
│   │   ├── color/
│   │   │   └── selector_txt_btn_unlock.xml
│   │   ├── drawable/
│   │   │   └── selector_bg_btn_unlock.xml
│   │   ├── layout/
│   │   │   └── activity_lockscreen.xml
│   │   ├── values/
│   │   │   ├── colors.xml
│   │   │   ├── dimens.xml
│   │   │   ├── strings.xml
│   │   │   └── style.xml
│   │   └── values-w820dp/
│   │       └── dimens.xml
│   └── src/
│       └── com/
│           └── mehuljoisar/
│               └── lockscreen/
│                   ├── LockScreenActivity.java
│                   └── utils/
│                       ├── LockscreenIntentReceiver.java
│                       ├── LockscreenService.java
│                       └── LockscreenUtils.java
└── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: LockScreenApp/.classpath
================================================
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="src" path="gen"/>
	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
	<classpathentry kind="output" path="bin/classes"/>
</classpath>


================================================
FILE: LockScreenApp/.project
================================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>LockScreenApp</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>


================================================
FILE: LockScreenApp/.settings/org.eclipse.jdt.core.prefs
================================================
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6


================================================
FILE: LockScreenApp/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mehuljoisar.lockscreen"
    android:versionCode="3"
    android:versionName="1.2" >

    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.mehuljoisar.lockscreen.LockScreenActivity"
            android:excludeFromRecents="true"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".utils.LockscreenService" >
        </service>

        <receiver
            android:name=".utils.LockscreenIntentReceiver"
            android:enabled="true" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

================================================
FILE: LockScreenApp/proguard.cfg
================================================
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}


================================================
FILE: LockScreenApp/project.properties
================================================
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=Google Inc.:Google APIs:22


================================================
FILE: LockScreenApp/res/color/selector_txt_btn_unlock.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="@color/white"/>
    <item android:color="@color/black"/>

</selector>

================================================
FILE: LockScreenApp/res/drawable/selector_bg_btn_unlock.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/black" android:state_pressed="true"/>
    <item android:drawable="@color/white"/>

</selector>

================================================
FILE: LockScreenApp/res/layout/activity_lockscreen.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/yellow"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <TextView
        android:id="@+id/tvInstructions"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/instructions"
        android:textAppearance="@android:style/TextAppearance.Medium"
        android:textColor="@color/black" />

    <Button
        android:id="@+id/btnUnlock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:layout_below="@id/tvInstructions"
        android:layout_centerHorizontal="true"
        android:background="@drawable/selector_bg_btn_unlock"
        android:text="@string/unlock"
        android:textAppearance="@android:style/TextAppearance.Large"
        android:textColor="@color/selector_txt_btn_unlock" />

</RelativeLayout>

================================================
FILE: LockScreenApp/res/values/colors.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="yellow">#F5DC49</color>
    <color name="black">#000000</color>
    <color name="white">#FFFFFF</color>
    
</resources>

================================================
FILE: LockScreenApp/res/values/dimens.xml
================================================
<resources>

    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>

</resources>


================================================
FILE: LockScreenApp/res/values/strings.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">LockScreenApp</string>

    <string name="instructions">Click on UNLOCK button to unlock the screen</string>
    <string name="unlock">UNLOCK</string>
    
</resources>

================================================
FILE: LockScreenApp/res/values/style.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="OverlayDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:backgroundDimEnabled">false</item>
    </style>

</resources>

================================================
FILE: LockScreenApp/res/values-w820dp/dimens.xml
================================================
<resources>

    <!--
         Example customization of dimensions originally defined in res/values/dimens.xml
         (such as screen margins) for screens with more than 820dp of available width. This
         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively).
    -->
    <dimen name="activity_horizontal_margin">64dp</dimen>

</resources>


================================================
FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/LockScreenActivity.java
================================================
package com.mehuljoisar.lockscreen;

import android.app.Activity;
import android.app.KeyguardManager;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.Button;

import com.mehuljoisar.lockscreen.utils.LockscreenService;
import com.mehuljoisar.lockscreen.utils.LockscreenUtils;

public class LockScreenActivity extends Activity implements
		LockscreenUtils.OnLockStatusChangedListener {

	// User-interface
	private Button btnUnlock;

	// Member variables
	private LockscreenUtils mLockscreenUtils;

	// Set appropriate flags to make the screen appear over the keyguard
	@Override
	public void onAttachedToWindow() {
		this.getWindow().setType(
				WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
		this.getWindow().addFlags(
				WindowManager.LayoutParams.FLAG_FULLSCREEN
						| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
						| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
						| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
						);

		super.onAttachedToWindow();
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_lockscreen);

		init();

		// unlock screen in case of app get killed by system
		if (getIntent() != null && getIntent().hasExtra("kill")
				&& getIntent().getExtras().getInt("kill") == 1) {
			enableKeyguard();
			unlockHomeButton();
		} else {

			try {
				// disable keyguard
				disableKeyguard();

				// lock home button
				lockHomeButton();

				// start service for observing intents
				startService(new Intent(this, LockscreenService.class));

				// listen the events get fired during the call
				StateListener phoneStateListener = new StateListener();
				TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
				telephonyManager.listen(phoneStateListener,
						PhoneStateListener.LISTEN_CALL_STATE);

			} catch (Exception e) {
			}

		}
	}

	private void init() {
		mLockscreenUtils = new LockscreenUtils();
		btnUnlock = (Button) findViewById(R.id.btnUnlock);
		btnUnlock.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// unlock home button and then screen on button press
				unlockHomeButton();
			}
		});
	}

	// Handle events of calls and unlock screen if necessary
	private class StateListener extends PhoneStateListener {
		@Override
		public void onCallStateChanged(int state, String incomingNumber) {

			super.onCallStateChanged(state, incomingNumber);
			switch (state) {
			case TelephonyManager.CALL_STATE_RINGING:
				unlockHomeButton();
				break;
			case TelephonyManager.CALL_STATE_OFFHOOK:
				break;
			case TelephonyManager.CALL_STATE_IDLE:
				break;
			}
		}
	};

	// Don't finish Activity on Back press
	@Override
	public void onBackPressed() {
		return;
	}

	// Handle button clicks
	@Override
	public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {

		if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
				|| (keyCode == KeyEvent.KEYCODE_POWER)
				|| (keyCode == KeyEvent.KEYCODE_VOLUME_UP)
				|| (keyCode == KeyEvent.KEYCODE_CAMERA)) {
			return true;
		}
		if ((keyCode == KeyEvent.KEYCODE_HOME)) {

			return true;
		}

		return false;

	}

	// handle the key press events here itself
	public boolean dispatchKeyEvent(KeyEvent event) {
		if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP
				|| (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN)
				|| (event.getKeyCode() == KeyEvent.KEYCODE_POWER)) {
			return false;
		}
		if ((event.getKeyCode() == KeyEvent.KEYCODE_HOME)) {

			return true;
		}
		return false;
	}

	// Lock home button
	public void lockHomeButton() {
		mLockscreenUtils.lock(LockScreenActivity.this);
	}

	// Unlock home button and wait for its callback
	public void unlockHomeButton() {
		mLockscreenUtils.unlock();
	}

	// Simply unlock device when home button is successfully unlocked
	@Override
	public void onLockStatusChanged(boolean isLocked) {
		if (!isLocked) {
			unlockDevice();
		}
	}

	@Override
	protected void onStop() {
		super.onStop();
		unlockHomeButton();
	}

	@SuppressWarnings("deprecation")
	private void disableKeyguard() {
		KeyguardManager mKM = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
		KeyguardManager.KeyguardLock mKL = mKM.newKeyguardLock("IN");
		mKL.disableKeyguard();
	}

	@SuppressWarnings("deprecation")
	private void enableKeyguard() {
		KeyguardManager mKM = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
		KeyguardManager.KeyguardLock mKL = mKM.newKeyguardLock("IN");
		mKL.reenableKeyguard();
	}
	
	//Simply unlock device by finishing the activity
	private void unlockDevice()
	{
		finish();
	}

}

================================================
FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenIntentReceiver.java
================================================
package com.mehuljoisar.lockscreen.utils;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import com.mehuljoisar.lockscreen.LockScreenActivity;

public class LockscreenIntentReceiver extends BroadcastReceiver {

	// Handle actions and display Lockscreen
	@Override
	public void onReceive(Context context, Intent intent) {

		if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)
				|| intent.getAction().equals(Intent.ACTION_SCREEN_ON)
				|| intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
			start_lockscreen(context);
		}

	}

	// Display lock screen
	private void start_lockscreen(Context context) {
		Intent mIntent = new Intent(context, LockScreenActivity.class);
		mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(mIntent);
	}

}


================================================
FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenService.java
================================================
package com.mehuljoisar.lockscreen.utils;

import android.app.Notification;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.os.IBinder;
import android.provider.SyncStateContract.Constants;
import android.support.v4.app.NotificationCompat;

import com.mehuljoisar.lockscreen.R;

public class LockscreenService extends Service {

	private BroadcastReceiver mReceiver;

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}

	@Override
	public void onCreate() {
		super.onCreate();
	}
	
	// Register for Lockscreen event intents
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
		filter.addAction(Intent.ACTION_SCREEN_OFF);
		mReceiver = new LockscreenIntentReceiver();
		registerReceiver(mReceiver, filter);
		startForeground();
		return START_STICKY;
	}

	// Run service in foreground so it is less likely to be killed by system
	private void startForeground() {
		Notification notification = new NotificationCompat.Builder(this)
		 .setContentTitle(getResources().getString(R.string.app_name))
		 .setTicker(getResources().getString(R.string.app_name))
		 .setContentText("Running")
		 .setSmallIcon(R.drawable.ic_launcher)
		 .setContentIntent(null)
		 .setOngoing(true)
		 .build();
		 startForeground(9999,notification);		
	}

	// Unregister receiver
	@Override
	public void onDestroy() {
		super.onDestroy();
		unregisterReceiver(mReceiver);
	}
}


================================================
FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenUtils.java
================================================
package com.mehuljoisar.lockscreen.utils;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.KeyguardManager;
import android.content.Context;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;

import com.mehuljoisar.lockscreen.R;

public class LockscreenUtils {

	// Member variables
	private OverlayDialog mOverlayDialog;
	private OnLockStatusChangedListener mLockStatusChangedListener;
	
	// Interface to communicate with owner activity
	public interface OnLockStatusChangedListener
	{
		public void onLockStatusChanged(boolean isLocked);
	}
	
	// Reset the variables
	public LockscreenUtils() {
		reset();
	}

	// Display overlay dialog with a view to prevent home button click
	public void lock(Activity activity) {
		if (mOverlayDialog == null) {
			mOverlayDialog = new OverlayDialog(activity);
			mOverlayDialog.show();
			mLockStatusChangedListener = (OnLockStatusChangedListener) activity;
		}
	}
	
	// Reset variables
	public void reset() {
		if (mOverlayDialog != null) {
			mOverlayDialog.dismiss();
			mOverlayDialog = null;
		}
	}

	// Unlock the home button and give callback to unlock the screen
	public void unlock() {
		if (mOverlayDialog != null) {
			mOverlayDialog.dismiss();
			mOverlayDialog = null;
			if(mLockStatusChangedListener!=null)
			{
				mLockStatusChangedListener.onLockStatusChanged(false);
			}
		}
	}

	// Create overlay dialog for lockedscreen to disable hardware buttons
	private static class OverlayDialog extends AlertDialog {

		public OverlayDialog(Activity activity) {
			super(activity, R.style.OverlayDialog);
			WindowManager.LayoutParams params = getWindow().getAttributes();
			params.type = LayoutParams.TYPE_SYSTEM_ERROR;
			params.dimAmount = 0.0F;
			params.width = 0;
			params.height = 0;
			params.gravity = Gravity.BOTTOM;
			getWindow().setAttributes(params);
			getWindow().setFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_NOT_TOUCH_MODAL,
					0xffffff);
			setOwnerActivity(activity);
			setCancelable(false);
		}

		// consume touch events
		public final boolean dispatchTouchEvent(MotionEvent motionevent) {
			return true;
		}

	}
}


================================================
FILE: README.md
================================================
LockScreenApp
=============


Features:
- Lockscreen over the screen
- Hardware home button disabled
- On-going notification to prevent app being killed by OS

It provides lockscreen in API 8 or above.

Initial

![Alt text](http://thumbnails114.imagebam.com/42319/f1a34d423182524.jpg "")


Locked

![Alt text](http://thumbnails114.imagebam.com/42319/422e11423182518.jpg "")



Unlocked

![Alt text](http://thumbnails114.imagebam.com/42319/f1a34d423182524.jpg "")



Download .txt
gitextract_y21tkzuy/

├── LockScreenApp/
│   ├── .classpath
│   ├── .project
│   ├── .settings/
│   │   └── org.eclipse.jdt.core.prefs
│   ├── AndroidManifest.xml
│   ├── libs/
│   │   └── android-support-v4.jar
│   ├── proguard.cfg
│   ├── project.properties
│   ├── res/
│   │   ├── color/
│   │   │   └── selector_txt_btn_unlock.xml
│   │   ├── drawable/
│   │   │   └── selector_bg_btn_unlock.xml
│   │   ├── layout/
│   │   │   └── activity_lockscreen.xml
│   │   ├── values/
│   │   │   ├── colors.xml
│   │   │   ├── dimens.xml
│   │   │   ├── strings.xml
│   │   │   └── style.xml
│   │   └── values-w820dp/
│   │       └── dimens.xml
│   └── src/
│       └── com/
│           └── mehuljoisar/
│               └── lockscreen/
│                   ├── LockScreenActivity.java
│                   └── utils/
│                       ├── LockscreenIntentReceiver.java
│                       ├── LockscreenService.java
│                       └── LockscreenUtils.java
└── README.md
Download .txt
SYMBOL INDEX (35 symbols across 4 files)

FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/LockScreenActivity.java
  class LockScreenActivity (line 19) | public class LockScreenActivity extends Activity implements
    method onAttachedToWindow (line 29) | @Override
    method onCreate (line 43) | @Override
    method init (line 80) | private void init() {
    class StateListener (line 94) | private class StateListener extends PhoneStateListener {
      method onCallStateChanged (line 95) | @Override
    method onBackPressed (line 112) | @Override
    method onKeyDown (line 118) | @Override
    method dispatchKeyEvent (line 137) | public boolean dispatchKeyEvent(KeyEvent event) {
    method lockHomeButton (line 151) | public void lockHomeButton() {
    method unlockHomeButton (line 156) | public void unlockHomeButton() {
    method onLockStatusChanged (line 161) | @Override
    method onStop (line 168) | @Override
    method disableKeyguard (line 174) | @SuppressWarnings("deprecation")
    method enableKeyguard (line 181) | @SuppressWarnings("deprecation")
    method unlockDevice (line 189) | private void unlockDevice()

FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenIntentReceiver.java
  class LockscreenIntentReceiver (line 9) | public class LockscreenIntentReceiver extends BroadcastReceiver {
    method onReceive (line 12) | @Override
    method start_lockscreen (line 24) | private void start_lockscreen(Context context) {

FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenService.java
  class LockscreenService (line 15) | public class LockscreenService extends Service {
    method onBind (line 19) | @Override
    method onCreate (line 24) | @Override
    method onStartCommand (line 30) | @Override
    method startForeground (line 41) | private void startForeground() {
    method onDestroy (line 54) | @Override

FILE: LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenUtils.java
  class LockscreenUtils (line 15) | public class LockscreenUtils {
    type OnLockStatusChangedListener (line 22) | public interface OnLockStatusChangedListener
      method onLockStatusChanged (line 24) | public void onLockStatusChanged(boolean isLocked);
    method LockscreenUtils (line 28) | public LockscreenUtils() {
    method lock (line 33) | public void lock(Activity activity) {
    method reset (line 42) | public void reset() {
    method unlock (line 50) | public void unlock() {
    class OverlayDialog (line 62) | private static class OverlayDialog extends AlertDialog {
      method OverlayDialog (line 64) | public OverlayDialog(Activity activity) {
      method dispatchTouchEvent (line 80) | public final boolean dispatchTouchEvent(MotionEvent motionevent) {
Condensed preview — 20 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (22K chars).
[
  {
    "path": "LockScreenApp/.classpath",
    "chars": 475,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<classpath>\r\n\t<classpathentry kind=\"con\" path=\"com.android.ide.eclipse.adt.ANDRO"
  },
  {
    "path": "LockScreenApp/.project",
    "chars": 849,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<projectDescription>\r\n\t<name>LockScreenApp</name>\r\n\t<comment></comment>\r\n\t<proje"
  },
  {
    "path": "LockScreenApp/.settings/org.eclipse.jdt.core.prefs",
    "chars": 598,
    "preview": "eclipse.preferences.version=1\r\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r\norg.eclipse.jdt.core.com"
  },
  {
    "path": "LockScreenApp/AndroidManifest.xml",
    "chars": 1733,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n    packag"
  },
  {
    "path": "LockScreenApp/proguard.cfg",
    "chars": 1248,
    "preview": "-optimizationpasses 5\n-dontusemixedcaseclassnames\n-dontskipnonpubliclibraryclasses\n-dontpreverify\n-verbose\n-optimization"
  },
  {
    "path": "LockScreenApp/project.properties",
    "chars": 377,
    "preview": "# This file is automatically generated by Android Tools.\n# Do not modify this file -- YOUR CHANGES WILL BE ERASED!\n#\n# T"
  },
  {
    "path": "LockScreenApp/res/color/selector_txt_btn_unlock.xml",
    "chars": 239,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\r\n\r\n    <it"
  },
  {
    "path": "LockScreenApp/res/drawable/selector_bg_btn_unlock.xml",
    "chars": 245,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\r\n\r\n    <it"
  },
  {
    "path": "LockScreenApp/res/layout/activity_lockscreen.xml",
    "chars": 1320,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n    "
  },
  {
    "path": "LockScreenApp/res/values/colors.xml",
    "chars": 197,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<resources>\r\n\r\n    <color name=\"yellow\">#F5DC49</color>\r\n    <color name=\"black\""
  },
  {
    "path": "LockScreenApp/res/values/dimens.xml",
    "chars": 220,
    "preview": "<resources>\r\n\r\n    <!-- Default screen margins, per the Android Design guidelines. -->\r\n    <dimen name=\"activity_horizo"
  },
  {
    "path": "LockScreenApp/res/values/strings.xml",
    "chars": 256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<resources>\r\n\r\n    <string name=\"app_name\">LockScreenApp</string>\r\n\r\n    <string"
  },
  {
    "path": "LockScreenApp/res/values/style.xml",
    "chars": 532,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<resources>\r\n\r\n    <style name=\"OverlayDialog\" parent=\"@android:style/Theme.Dial"
  },
  {
    "path": "LockScreenApp/res/values-w820dp/dimens.xml",
    "chars": 381,
    "preview": "<resources>\r\n\r\n    <!--\r\n         Example customization of dimensions originally defined in res/values/dimens.xml\n      "
  },
  {
    "path": "LockScreenApp/src/com/mehuljoisar/lockscreen/LockScreenActivity.java",
    "chars": 4939,
    "preview": "package com.mehuljoisar.lockscreen;\n\nimport android.app.Activity;\nimport android.app.KeyguardManager;\nimport android.con"
  },
  {
    "path": "LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenIntentReceiver.java",
    "chars": 864,
    "preview": "package com.mehuljoisar.lockscreen.utils;\r\n\r\nimport android.content.BroadcastReceiver;\r\nimport android.content.Context;\r"
  },
  {
    "path": "LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenService.java",
    "chars": 1659,
    "preview": "package com.mehuljoisar.lockscreen.utils;\r\n\r\nimport android.app.Notification;\r\nimport android.app.Service;\r\nimport andro"
  },
  {
    "path": "LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenUtils.java",
    "chars": 2353,
    "preview": "package com.mehuljoisar.lockscreen.utils;\r\n\r\nimport android.app.Activity;\r\nimport android.app.AlertDialog;\r\nimport andro"
  },
  {
    "path": "README.md",
    "chars": 466,
    "preview": "LockScreenApp\n=============\n\n\nFeatures:\n- Lockscreen over the screen\n- Hardware home button disabled\n- On-going notifica"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the Joisar/LockScreenApp GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 20 files (18.5 KB), approximately 5.2k tokens, and a symbol index with 35 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!