Repository: jcmore2/FreeView Branch: master Commit: 314ff33f3d14 Files: 43 Total size: 59.9 KB Directory structure: gitextract_g_he0s49/ ├── .gitignore ├── .idea/ │ ├── .name │ ├── compiler.xml │ ├── copyright/ │ │ └── profiles_settings.xml │ ├── dictionaries/ │ │ └── jcmore2.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── FreeView.iml ├── README.md ├── app/ │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── freeview/ │ │ └── jcmore2/ │ │ └── com/ │ │ └── freeview/ │ │ └── ApplicationTest.java │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── jcmore2/ │ │ └── freeview/ │ │ └── sample/ │ │ └── MainActivity.java │ └── res/ │ ├── drawable/ │ │ └── bg_rounded.xml │ ├── layout/ │ │ ├── activity_main.xml │ │ └── content.xml │ ├── menu/ │ │ └── menu_main.xml │ ├── values/ │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── values-w820dp/ │ └── dimens.xml ├── build.gradle ├── freeview/ │ ├── .gitignore │ ├── build.gradle │ ├── freeview.iml │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── jcmore2/ │ │ └── freeview/ │ │ ├── BackgroundManager.java │ │ ├── FreeView.java │ │ └── FreeViewService.java │ └── res/ │ └── values/ │ └── strings.xml ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures ================================================ FILE: .idea/.name ================================================ FreeView ================================================ FILE: .idea/compiler.xml ================================================ ================================================ FILE: .idea/copyright/profiles_settings.xml ================================================ ================================================ FILE: .idea/dictionaries/jcmore2.xml ================================================ ================================================ FILE: .idea/gradle.xml ================================================ ================================================ FILE: .idea/misc.xml ================================================ Android API 3 Platform 1.7 ================================================ FILE: .idea/modules.xml ================================================ ================================================ FILE: .idea/runConfigurations.xml ================================================ ================================================ FILE: .idea/vcs.xml ================================================ ================================================ FILE: FreeView.iml ================================================ ================================================ FILE: README.md ================================================ FreeView ============= FreeView create a floating view that you can use and move inside your app and also when your app is in background. Usage ----- Add library to your build.gradle: ```java compile 'com.jcmore2.freeview:freeview:1.1.2' ``` Add Window permission in your manifest: ```xml ``` Init FreeView with your content: ```java FreeView.init(MainActivity.this).withView(R.layout.content).showFreeView(); ``` You can also use a callback: ```java FreeView.init(MainActivity.this).withView(R.layout.content).showFreeView(new FreeView.FreeViewListener() { @Override public void onShow() { Toast.makeText(MainActivity.this, "onShow", Toast.LENGTH_SHORT).show(); } @Override public void onDismiss() { Toast.makeText(MainActivity.this, "onDismiss", Toast.LENGTH_SHORT).show(); } @Override public void onClick() { Toast.makeText(MainActivity.this, "onClick", Toast.LENGTH_SHORT).show(); } }); ``` Dismiss FreeView using: ```java FreeView.get().dismissFreeView(); ``` If you want FreeView will show when your app goes to background use ``dismissOnBackground(false)``: ```java FreeView.init(MainActivity.this).withView(R.layout.content).dismissOnBackground(false).showFreeView(new FreeView.FreeViewListener() { @Override public void onShow() { Toast.makeText(MainActivity.this, "onShow", Toast.LENGTH_SHORT).show(); } @Override public void onDismiss() { Toast.makeText(MainActivity.this, "onDismiss", Toast.LENGTH_SHORT).show(); } }); ``` You can check the sample App! Credits & Contact ----------------- FreeView was created by jcmore2@gmail.com License ------- FreeView is available under the Apache License, Version 2.0. ================================================ FILE: app/.gitignore ================================================ /build ================================================ FILE: app/app.iml ================================================ ================================================ FILE: app/build.gradle ================================================ apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.jcmore2.freeview.sample" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' //compile 'com.jcmore2.freeview:freeview:1.0.0' compile project (':freeview') } ================================================ FILE: app/proguard-rules.pro ================================================ # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Applications/adt-bundle-mac-x86_64-20130522/sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} ================================================ FILE: app/src/androidTest/java/freeview/jcmore2/com/freeview/ApplicationTest.java ================================================ package freeview.jcmore2.com.freeview; import android.app.Application; import android.test.ApplicationTestCase; /** * Testing Fundamentals */ public class ApplicationTest extends ApplicationTestCase { public ApplicationTest() { super(Application.class); } } ================================================ FILE: app/src/main/AndroidManifest.xml ================================================ ================================================ FILE: app/src/main/java/com/jcmore2/freeview/sample/MainActivity.java ================================================ package com.jcmore2.freeview.sample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; import com.jcmore2.freeview.FreeView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.dismiss).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FreeView.get().dismissFreeView(); } }); findViewById(R.id.show).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FreeView.init(MainActivity.this).withView(R.layout.content).showFreeView(new FreeView.FreeViewListener() { @Override public void onShow() { Toast.makeText(MainActivity.this, "onShow", Toast.LENGTH_SHORT).show(); } @Override public void onDismiss() { Toast.makeText(MainActivity.this, "onDismiss", Toast.LENGTH_SHORT).show(); } @Override public void onClick() { Toast.makeText(MainActivity.this, "onClick", Toast.LENGTH_SHORT).show(); } }); } }); findViewById(R.id.showBG).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FreeView.init(MainActivity.this).withView(R.layout.content).dismissOnBackground(false).showFreeView(new FreeView.FreeViewListener() { @Override public void onShow() { Toast.makeText(MainActivity.this, "onShow", Toast.LENGTH_SHORT).show(); } @Override public void onDismiss() { Toast.makeText(MainActivity.this, "onDismiss", Toast.LENGTH_SHORT).show(); } @Override public void onClick() { Toast.makeText(MainActivity.this, "onClick", Toast.LENGTH_SHORT).show(); } }); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ================================================ FILE: app/src/main/res/drawable/bg_rounded.xml ================================================ ================================================ FILE: app/src/main/res/layout/activity_main.xml ================================================