├── app ├── .gitignore ├── debug │ ├── app-debug.apk │ └── output.json ├── src │ ├── main │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── logo.png │ │ │ │ ├── wall.png │ │ │ │ ├── cloudicon.png │ │ │ │ ├── screenshot_1.jpg │ │ │ │ ├── screenshot_2.png │ │ │ │ ├── screenshot_3.png │ │ │ │ ├── screenshot_4.png │ │ │ │ ├── under_construction.png │ │ │ │ ├── example_appwidget_preview.png │ │ │ │ ├── roundblack.xml │ │ │ │ ├── roundpink.xml │ │ │ │ ├── roundwhite.xml │ │ │ │ ├── roundgreen.xml │ │ │ │ ├── roundorange.xml │ │ │ │ ├── roundbluegreen.xml │ │ │ │ ├── button.xml │ │ │ │ ├── setting_button.xml │ │ │ │ ├── bluethumb.xml │ │ │ │ ├── greenthumb.xml │ │ │ │ ├── redthumb.xml │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── drawable-nodpi │ │ │ │ └── rounddarkblue.xml │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── styles.xml │ │ │ │ ├── strings.xml │ │ │ │ └── colors.xml │ │ │ ├── values-v14 │ │ │ │ └── dimens.xml │ │ │ ├── layout │ │ │ │ ├── widget_provider.xml │ │ │ │ ├── lockscreen_set.xml │ │ │ │ ├── shortcutsetting.xml │ │ │ │ ├── weathersetting.xml │ │ │ │ ├── sentencesetting.xml │ │ │ │ ├── labsetting.xml │ │ │ │ ├── mainsetting.xml │ │ │ │ ├── activity_help.xml │ │ │ │ ├── activity_setting.xml │ │ │ │ ├── fatversion.xml │ │ │ │ ├── bigsizemid.xml │ │ │ │ └── bigsizefull.xml │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ └── xml │ │ │ │ ├── bigsizemid_info.xml │ │ │ │ ├── fatversion_info.xml │ │ │ │ ├── midsize_info.xml │ │ │ │ ├── bigsizefull_info.xml │ │ │ │ ├── bigsizesmall_info.xml │ │ │ │ ├── widgetprovider_info.xml │ │ │ │ ├── midsizesmall.xml │ │ │ │ └── accessibilityservice.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── leejoonhee │ │ │ │ └── hangulclockforandroid │ │ │ │ ├── lockscreen │ │ │ │ ├── LockApplication.java │ │ │ │ ├── LockWindowAccessibilityService.java │ │ │ │ ├── lockset.java │ │ │ │ ├── LockScreen.java │ │ │ │ └── LockscreenService.java │ │ │ │ ├── Service │ │ │ │ ├── HelpActivity.java │ │ │ │ ├── SentenceActivity.java │ │ │ │ └── SettingActivity.java │ │ │ │ └── MainActivity.java │ │ ├── AndroidManifest.xml │ │ └── AndroidManifest (1).xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── leejoonhee │ │ │ └── hangulclockforandroid │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── leejoonhee │ │ └── hangulclockforandroid │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro ├── google-services.json └── build.gradle ├── settings.gradle ├── banner.jpg ├── promotionlogo.jpg ├── Screenshot_1539158155.png ├── Screenshot_1539158236.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── Screen Shot 2018-10-10 at 18.43.47 (2).png ├── .gitignore ├── gradle.properties ├── README.md ├── gradlew.bat ├── gradlew └── 한글시계안드로이드_개인정보처리방침.html /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/banner.jpg -------------------------------------------------------------------------------- /promotionlogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/promotionlogo.jpg -------------------------------------------------------------------------------- /app/debug/app-debug.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/debug/app-debug.apk -------------------------------------------------------------------------------- /Screenshot_1539158155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/Screenshot_1539158155.png -------------------------------------------------------------------------------- /Screenshot_1539158236.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/Screenshot_1539158236.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/wall.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable/cloudicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/cloudicon.png -------------------------------------------------------------------------------- /Screen Shot 2018-10-10 at 18.43.47 (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/Screen Shot 2018-10-10 at 18.43.47 (2).png -------------------------------------------------------------------------------- /app/src/main/res/drawable/screenshot_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/screenshot_1.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/screenshot_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/screenshot_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/screenshot_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/under_construction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/under_construction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/example_appwidget_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jlstdio/HangulClock/HEAD/app/src/main/res/drawable/example_appwidget_preview.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | 11 | .idea/ 12 | -------------------------------------------------------------------------------- /app/debug/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":14,"versionName":"3.2","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"app-debug.apk","properties":{}}] -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundblack.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundpink.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundwhite.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundgreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundorange.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/rounddarkblue.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundbluegreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Aug 06 15:55:40 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/setting_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bluethumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/greenthumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/redthumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/lockscreen/LockApplication.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.lockscreen; 2 | 3 | import android.app.Application; 4 | 5 | public class LockApplication extends Application { 6 | 7 | public boolean lockScreenShow=false; 8 | public int notificationId=1900; 9 | 10 | @Override 11 | public void onCreate() { 12 | super.onCreate(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 8dp 9 | 16dp 10 | 16dp 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-v14/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 0dp 9 | 16dp 10 | 16dp 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_provider.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/Service/HelpActivity.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.Service; 2 | import android.os.Bundle; 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import com.leejoonhee.hangulclockforandroid.R; 6 | 7 | public class HelpActivity extends AppCompatActivity { 8 | 9 | @Override 10 | protected void onCreate(Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | setContentView(R.layout.activity_help); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/test/java/com/leejoonhee/hangulclockforandroid/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/xml/bigsizemid_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/fatversion_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/midsize_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/bigsizefull_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/bigsizesmall_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/widgetprovider_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/midsizesmall.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/xml/accessibilityservice.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | android.enableJetifier=true 13 | android.useAndroidX=true 14 | org.gradle.jvmargs=-Xmx1536m 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/leejoonhee/hangulclockforandroid/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static junit.framework.Assert.assertEquals; 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() throws Exception { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getTargetContext(); 24 | 25 | assertEquals("com.leejoonhee.hangulclockforandroid", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Add widget 3 | EXAMPLE 4 | 한글시계 5 | Slide to unlock 6 | Locked 7 | Unlocked 8 | Move this thumb 9 | 10 | ca-app-pub-8081631582008293/5576438546 11 | ca-app-pub-8081631582008293~8449303451 12 | ca-app-pub-3940256099942544/6300978111 13 | 14 | "Turn on and it locks all soft key including HOME, RECENTS, BACK, MENU buttons. 15 | 16 | You may be warned about potential privacy risk, that's just a regular informative warning for any accessibility service. We promise NEVER EVER collecting your personal information in this accessibility service." 17 | 18 | Hello world! 19 | Settings 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/lockscreen/LockWindowAccessibilityService.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.lockscreen; 2 | 3 | import android.accessibilityservice.AccessibilityService; 4 | import android.view.KeyEvent; 5 | import android.view.accessibility.AccessibilityEvent; 6 | 7 | /** 8 | * Created by andika on 2/25/17. 9 | */ 10 | 11 | public class LockWindowAccessibilityService extends AccessibilityService { 12 | 13 | @Override 14 | protected boolean onKeyEvent(KeyEvent event) { 15 | 16 | LockScreen.getInstance().init(this); 17 | if( ((LockApplication) getApplication()).lockScreenShow ){ 18 | // disable home 19 | if(event.getKeyCode()==KeyEvent.KEYCODE_HOME || event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER){ 20 | return true; 21 | } 22 | } 23 | 24 | return super.onKeyEvent(event); 25 | } 26 | 27 | @Override 28 | public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) { 29 | //Log.d("onAccessibilityEvent","onAccessibilityEvent"); 30 | } 31 | 32 | @Override 33 | public void onInterrupt() { 34 | 35 | } 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "123493219796", 4 | "firebase_url": "https://hangulclock.firebaseio.com", 5 | "project_id": "hangulclock", 6 | "storage_bucket": "hangulclock.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:123493219796:android:605f86e29ad55374", 12 | "android_client_info": { 13 | "package_name": "com.leejoonhee.hangulclockforandroid" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "123493219796-4jv5rk2ojdsle01gk1013e4su55g9vj3.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyDVBXn0txYLFYum2kwJUQHKli8MwlVQOso" 25 | } 26 | ], 27 | "services": { 28 | "analytics_service": { 29 | "status": 1 30 | }, 31 | "appinvite_service": { 32 | "status": 1, 33 | "other_platform_oauth_client": [] 34 | }, 35 | "ads_service": { 36 | "status": 2 37 | } 38 | } 39 | } 40 | ], 41 | "configuration_version": "1" 42 | } -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/Service/SentenceActivity.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.Service; 2 | 3 | import android.app.Activity; 4 | import android.content.SharedPreferences; 5 | import android.os.Bundle; 6 | import androidx.appcompat.app.AppCompatActivity; 7 | import android.view.View; 8 | import android.widget.EditText; 9 | 10 | import com.leejoonhee.hangulclockforandroid.R; 11 | 12 | public class SentenceActivity extends AppCompatActivity { 13 | 14 | EditText editsentence; 15 | 16 | SharedPreferences sets; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.sentencesetting); 22 | 23 | editsentence = findViewById(R.id.editsentence); 24 | 25 | sets = getSharedPreferences("usersets", Activity.MODE_PRIVATE); //MainActivity가 꺼져도 NewAppWidget에서 값을 받아 올 수 있도록 SharedPreference를 사용하였습니다 26 | editsentence.setText(sets.getString("title", "receivingfail")); 27 | } 28 | 29 | public void save(View V){ 30 | String word = editsentence.getText().toString(); 31 | 32 | SharedPreferences.Editor editor = sets.edit(); 33 | editor.putString("title", word); //ID가"color"인 sharedpreference에 정수 "1"를 저장합니다 34 | editor.commit(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 28 5 | defaultConfig { 6 | applicationId "com.leejoonhee.hangulclockforandroid" 7 | minSdkVersion 19 8 | targetSdkVersion 28 9 | versionCode 17//Last Modified : Dec. 22. 2019 10 | versionName "3.2.5"//Last Modified : Dec. 22. 2019 11 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | aaptOptions{ 20 | cruncherEnabled = false 21 | } 22 | } 23 | 24 | dependencies { 25 | implementation fileTree(include: ['*.jar'], dir: 'libs') 26 | implementation 'androidx.appcompat:appcompat:1.0.2' 27 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3' 28 | implementation 'com.google.android.material:material:1.0.0' 29 | implementation 'androidx.cardview:cardview:1.0.0' 30 | testImplementation 'junit:junit:4.12' 31 | androidTestImplementation 'androidx.test.ext:junit:1.1.0' 32 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' 33 | implementation 'com.google.firebase:firebase-core:16.0.8' 34 | implementation 'com.google.firebase:firebase-database:16.1.0' 35 | implementation 'com.squareup.okhttp:okhttp:2.7.2' 36 | implementation 'com.google.firebase:firebase-ads:11.8.0' 37 | 38 | } 39 | 40 | apply plugin: 'com.google.gms.google-services' -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/lockscreen/lockset.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.lockscreen; 2 | 3 | import android.content.SharedPreferences; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | import android.os.Bundle; 6 | import android.widget.CompoundButton; 7 | import android.widget.ToggleButton; 8 | 9 | import com.leejoonhee.hangulclockforandroid.R; 10 | 11 | public class lockset extends AppCompatActivity { 12 | 13 | ToggleButton toggleButton; 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.lockscreen_set); 19 | 20 | toggleButton = (ToggleButton)findViewById(R.id.toggleButton); 21 | 22 | LockScreen.getInstance().init(this,true); 23 | 24 | SharedPreferences sets = getSharedPreferences("usersets",0); 25 | sets.getInt("lock_color", 1); 26 | 27 | if(LockScreen.getInstance().isActive()){ 28 | toggleButton.setChecked(true); 29 | } 30 | else{ 31 | toggleButton.setChecked(false); 32 | 33 | } 34 | 35 | toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 36 | @Override 37 | public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { 38 | if(checked){ 39 | 40 | LockScreen.getInstance().active(); 41 | } 42 | else{ 43 | LockScreen.getInstance().deactivate(); 44 | } 45 | } 46 | }); 47 | 48 | } 49 | 50 | 51 | 52 | 53 | 54 | 55 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | Copyright (C) <2018> 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | 7 | it under the terms of the GNU General Public License as published by 8 | 9 | the Free Software Foundation, either version 3 of the License, or any later version. 10 | 11 | 12 | This program is distributed in the hope that it will be useful, 13 | 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17 | 18 | 19 | See the GNU General Public License for more details. 20 | 21 | You should have received a copy of the GNU General Public License 22 | 23 | along with this program. If not, see 24 | 25 | # Site link 26 | [HangulClock](https://hangulclock.today/) 27 | 28 | 29 | # 알림 / Alert 30 | "HangulClock For Android"는 "한글시계"Mac, Window버전을 만든 "이상훈"님과 한글시계 원작자분께 허락을 받아 개발되었습니다. 31 | 32 | "HangulClock For Android" is originated from HangulClock Mac and Window version(developer : [SangHunLee](https://github.com/dsa28s/)). 33 | 34 | # TODO 35 | - 서버로 부터 랜덤으로 문자를 받아오는 기능 추가 36 | - Getting random pharse from the server 37 | 38 | - 새로운 "이스터에그"추가(찾아보시길.. ㅎ) 39 | - adding easter egg 40 | 41 | - 간단히 날씨를 알아 볼 수 있는 기능 추가 42 | - adding weather feature 43 | 44 | - 환경설정 디자인 바꾸기..(못생겼어..) 45 | - UI update 46 | 47 | # 작동버전 / minimum os version 48 | - Android 4.4(KitKat)+ 49 | 50 | # 메모 / memo 51 | - nothing to add right now 52 | 53 | # 한글시계는 컴퓨터에도 있습니다! / HangulClock also has PC and Mac version! 54 | 55 | - [HangulClock Official Site](https://hangulclock.today/) 56 | - [PC & Mac version developer github](https://github.com/dsa28s/) 57 | 58 | -------------------------------------------------------------------------------- /app/src/main/res/layout/lockscreen_set.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 18 | 23 | 24 | 25 | 30 | 31 | 36 | 37 | 42 | 47 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #2843465a 7 | #000000 8 | #2d2d2d 9 | #ffffff 10 | #081528 11 | #082f44 12 | #eef0f1 13 | #d2b4b4b4 14 | #00ffffff 15 | 16 | #ca4833 17 | #d76350 18 | #f56750 19 | #d070a3 20 | #fd93cb 21 | 22 | #f4b212 23 | #f2b728 24 | #e8be58 25 | #edce1d 26 | #f5e067 27 | 28 | #35ba0d 29 | #73ca2f 30 | #95d365 31 | #62a49d 32 | #89d7cf 33 | 34 | #113470 35 | #164594 36 | #12538f 37 | #286dc9 38 | #3c88ec 39 | 40 | #260d71 41 | #4620b7 42 | #5f3ace 43 | #7c5fd1 44 | #9782d7 45 | 46 | #540017 47 | #874054 48 | #99173b 49 | #ac2248 50 | #e2436f 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/layout/shortcutsetting.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 18 | 19 | 20 | 27 | 28 | 35 | 36 | 40 | 41 | 42 | 43 | 49 | 50 | 58 | 59 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/leejoonhee/hangulclockforandroid/lockscreen/LockScreen.java: -------------------------------------------------------------------------------- 1 | package com.leejoonhee.hangulclockforandroid.lockscreen; 2 | 3 | import android.app.ActivityManager; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.content.SharedPreferences; 7 | import android.provider.Settings; 8 | 9 | public class LockScreen { 10 | public static LockScreen singleton; 11 | Context context; 12 | boolean disableHomeButton=false; 13 | 14 | 15 | SharedPreferences prefs = null; 16 | 17 | 18 | public static LockScreen getInstance() { 19 | if(singleton==null){ 20 | singleton = new LockScreen(); 21 | 22 | } 23 | return singleton; 24 | } 25 | public void init(Context context){ 26 | this.context = context; 27 | 28 | 29 | } 30 | 31 | public void init(Context context, boolean disableHomeButton){ 32 | this.context = context; 33 | this.disableHomeButton = disableHomeButton; 34 | 35 | } 36 | 37 | public void showSettingAccesability(){ 38 | if(!isMyServiceRunning(LockWindowAccessibilityService.class)) { 39 | Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); 40 | context.startActivity(intent); 41 | } 42 | } 43 | 44 | 45 | public void active(){ 46 | if(disableHomeButton){ 47 | showSettingAccesability(); 48 | } 49 | 50 | if(context!=null) { 51 | context.startService(new Intent(context, LockscreenService.class)); 52 | } 53 | } 54 | 55 | public void deactivate(){ 56 | if(context!=null) { 57 | context.stopService(new Intent(context, LockscreenService.class)); 58 | } 59 | } 60 | public boolean isActive(){ 61 | if(context!=null) { 62 | return isMyServiceRunning(LockscreenService.class); 63 | }else{ 64 | return false; 65 | } 66 | } 67 | public boolean isMyServiceRunning(Class serviceClass) { 68 | ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 69 | for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 70 | if (serviceClass.getName().equals(service.service.getClassName())) { 71 | return true; 72 | } 73 | } 74 | return false; 75 | } 76 | 77 | 78 | 79 | } 80 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/src/main/res/layout/weathersetting.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 17 | 18 | 24 | 25 | 31 | 32 | 41 | 42 | 51 | 52 | 61 | 62 | 71 | 72 |