Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
84 changed files
with
3,181 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 27 | ||
defaultConfig { | ||
applicationId "com.skydoves.powermenu.powermenudemo" | ||
minSdkVersion 17 | ||
targetSdkVersion 27 | ||
versionCode 1 | ||
versionName "1.0" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
implementation 'com.android.support:appcompat-v7:27.0.0' | ||
implementation 'com.android.support:design:27.0.0' | ||
implementation 'de.hdodenhof:circleimageview:2.2.0' | ||
implementation project(":powermenu") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Add project specific ProGuard rules here. | ||
# You can control the set of applied configuration files using the | ||
# proguardFiles setting in build.gradle. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# 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 *; | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
#-keepattributes SourceFile,LineNumberTable | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.skydoves.powermenudemo"> | ||
|
||
<application | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
<activity android:name=".MainActivity"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
|
||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
</application> | ||
|
||
</manifest> |
137 changes: 137 additions & 0 deletions
137
app/src/main/java/com/skydoves/powermenudemo/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
package com.skydoves.powermenudemo; | ||
|
||
import android.os.Bundle; | ||
import android.support.v7.app.AppCompatActivity; | ||
import android.view.View; | ||
import android.widget.Toast; | ||
|
||
import com.skydoves.powermenu.CustomPowerMenu; | ||
import com.skydoves.powermenu.OnMenuItemClickListener; | ||
import com.skydoves.powermenu.PowerMenu; | ||
import com.skydoves.powermenu.PowerMenuItem; | ||
import com.skydoves.powermenudemo.customs.items.IconPowerMenuItem; | ||
|
||
/** | ||
* Developed by skydoves on 2017-10-29. | ||
* Copyright (c) 2017 skydoves rights reserved. | ||
*/ | ||
|
||
public class MainActivity extends AppCompatActivity { | ||
|
||
private PowerMenu hamburgerMenu; | ||
private PowerMenu profileMenu; | ||
private CustomPowerMenu writeMenu; | ||
private CustomPowerMenu alertMenu; | ||
private CustomPowerMenu iconMenu; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
|
||
hamburgerMenu = PowerMenuUtils.getHamburgerPowerMenu(this, onHamburgerItemClickListener); | ||
profileMenu = PowerMenuUtils.getProfilePowerMenu(this, onProfileItemClickListener); | ||
writeMenu = PowerMenuUtils.getWritePowerMenu(this, onWriteItemClickListener); | ||
alertMenu = PowerMenuUtils.getAlertPowerMenu(this, onAlertItemClickListener); | ||
iconMenu = PowerMenuUtils.getIconPowerMenu(this, onIconMenuItemClickListener); | ||
} | ||
|
||
private OnMenuItemClickListener<PowerMenuItem> onHamburgerItemClickListener = new OnMenuItemClickListener<PowerMenuItem>() { | ||
@Override | ||
public void onItemClick(int position, PowerMenuItem item) { | ||
Toast.makeText(getBaseContext(), item.getTitle(), Toast.LENGTH_SHORT).show(); | ||
hamburgerMenu.setSelected(position); | ||
hamburgerMenu.dismiss(); | ||
} | ||
}; | ||
|
||
private OnMenuItemClickListener<PowerMenuItem> onProfileItemClickListener = new OnMenuItemClickListener<PowerMenuItem>() { | ||
@Override | ||
public void onItemClick(int position, PowerMenuItem item) { | ||
Toast.makeText(getBaseContext(), item.getTitle(), Toast.LENGTH_SHORT).show(); | ||
profileMenu.dismiss(); | ||
} | ||
}; | ||
|
||
private OnMenuItemClickListener<String> onWriteItemClickListener = new OnMenuItemClickListener<String>() { | ||
@Override | ||
public void onItemClick(int position, String title) { | ||
Toast.makeText(getBaseContext(), title, Toast.LENGTH_SHORT).show(); | ||
writeMenu.dismiss(); | ||
} | ||
}; | ||
|
||
private OnMenuItemClickListener<String> onAlertItemClickListener = new OnMenuItemClickListener<String>() { | ||
@Override | ||
public void onItemClick(int position, String title) { | ||
Toast.makeText(getBaseContext(), title, Toast.LENGTH_SHORT).show(); | ||
alertMenu.dismiss(); | ||
} | ||
}; | ||
|
||
private OnMenuItemClickListener<IconPowerMenuItem> onIconMenuItemClickListener = new OnMenuItemClickListener<IconPowerMenuItem>() { | ||
@Override | ||
public void onItemClick(int position, IconPowerMenuItem item) { | ||
Toast.makeText(getBaseContext(), item.getTitle(), Toast.LENGTH_SHORT).show(); | ||
iconMenu.dismiss(); | ||
} | ||
}; | ||
|
||
public void onHamburger(View view) { | ||
if(hamburgerMenu.isShowing()) { | ||
hamburgerMenu.dismiss(); | ||
return; | ||
} | ||
hamburgerMenu.showAsDropDown(view); | ||
} | ||
|
||
public void onProfile(View view) { | ||
if(profileMenu.isShowing()) { | ||
profileMenu.dismiss(); | ||
return; | ||
} | ||
profileMenu.showAsDropDown(view, -370, 0); | ||
} | ||
|
||
public void onWrite(View view) { | ||
if(writeMenu.isShowing()) { | ||
writeMenu.dismiss(); | ||
return; | ||
} | ||
View layout = findViewById(R.id.layout_main); | ||
writeMenu.showAtCenter(layout); | ||
} | ||
|
||
public void onAlert(View view) { | ||
if(alertMenu.isShowing()) { | ||
alertMenu.dismiss(); | ||
return; | ||
} | ||
View layout = findViewById(R.id.layout_main); | ||
alertMenu.showAtCenter(layout); | ||
} | ||
|
||
public void onShare(View view) { | ||
if(iconMenu.isShowing()) { | ||
iconMenu.dismiss(); | ||
return; | ||
} | ||
iconMenu.showAsDropDown(view, -370, 0); | ||
} | ||
|
||
@Override | ||
public void onBackPressed() { | ||
if(hamburgerMenu.isShowing()) | ||
hamburgerMenu.dismiss(); | ||
else if(profileMenu.isShowing()) | ||
profileMenu.dismiss(); | ||
else if(writeMenu.isShowing()) | ||
writeMenu.dismiss(); | ||
else if(alertMenu.isShowing()) | ||
alertMenu.dismiss(); | ||
else if(iconMenu.isShowing()) | ||
iconMenu.dismiss(); | ||
else | ||
super.onBackPressed(); | ||
} | ||
} |
101 changes: 101 additions & 0 deletions
101
app/src/main/java/com/skydoves/powermenudemo/PowerMenuUtils.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
package com.skydoves.powermenudemo; | ||
|
||
import android.content.Context; | ||
import android.graphics.Color; | ||
import android.graphics.drawable.ColorDrawable; | ||
import android.view.View; | ||
|
||
import com.skydoves.powermenu.CustomPowerMenu; | ||
import com.skydoves.powermenu.MenuAnimation; | ||
import com.skydoves.powermenu.OnMenuItemClickListener; | ||
import com.skydoves.powermenu.PowerMenu; | ||
import com.skydoves.powermenu.PowerMenuItem; | ||
import com.skydoves.powermenudemo.customs.adapters.CenterMenuAdapter; | ||
import com.skydoves.powermenudemo.customs.adapters.IconMenuAdapter; | ||
import com.skydoves.powermenudemo.customs.items.IconPowerMenuItem; | ||
|
||
/** | ||
* Developed by skydoves on 2017-10-29. | ||
* Copyright (c) 2017 skydoves rights reserved. | ||
*/ | ||
|
||
public class PowerMenuUtils { | ||
|
||
public static PowerMenu getHamburgerPowerMenu(Context context, OnMenuItemClickListener onMenuItemClickListener) { | ||
return new PowerMenu.Builder(context) | ||
.addItem(new PowerMenuItem("Novel", true)) | ||
.addItem(new PowerMenuItem("Poetry", false)) | ||
.addItem(new PowerMenuItem("Art", false)) | ||
.addItem(new PowerMenuItem("Journals", false)) | ||
.addItem(new PowerMenuItem("Travel", false)) | ||
.setAnimation(MenuAnimation.SHOWUP_TOP_LEFT) | ||
.setMenuRadius(10f) | ||
.setMenuShadow(10f) | ||
.setTextColor(context.getResources().getColor(R.color.md_grey_800)) | ||
.setSelectedTextColor(Color.WHITE) | ||
.setMenuColor(Color.WHITE) | ||
.setSelectedMenuColor(context.getResources().getColor(R.color.colorPrimary)) | ||
.setOnMenuItemClickListener(onMenuItemClickListener) | ||
.build(); | ||
} | ||
|
||
public static PowerMenu getProfilePowerMenu(Context context, OnMenuItemClickListener onMenuItemClickListener) { | ||
return new PowerMenu.Builder(context) | ||
.addItem(new PowerMenuItem("Profile", false)) | ||
.addItem(new PowerMenuItem("Board", false)) | ||
.addItem(new PowerMenuItem("Logout", false)) | ||
.setAnimation(MenuAnimation.SHOWUP_TOP_RIGHT) | ||
.setMenuRadius(10f) | ||
.setMenuShadow(10f) | ||
.setTextColor(context.getResources().getColor(R.color.md_grey_800)) | ||
.setMenuColor(Color.WHITE) | ||
.setSelectedEffect(false) | ||
.setOnMenuItemClickListener(onMenuItemClickListener) | ||
.build(); | ||
} | ||
|
||
public static CustomPowerMenu getWritePowerMenu(Context context, OnMenuItemClickListener onMenuItemClickListener) { | ||
ColorDrawable drawable = new ColorDrawable(context.getResources().getColor(R.color.md_blue_grey_300)); | ||
return new CustomPowerMenu.Builder<>(context, new CenterMenuAdapter()) | ||
.addItem("Novel") | ||
.addItem("Poetry") | ||
.addItem("Art") | ||
.addItem("Journals") | ||
.addItem("Travel") | ||
.setAnimation(MenuAnimation.FADE) | ||
.setMenuRadius(10f) | ||
.setMenuShadow(10f) | ||
.setDivider(drawable) | ||
.setDividerHeight(1) | ||
.setOnMenuItemClickListener(onMenuItemClickListener) | ||
.build(); | ||
} | ||
|
||
public static CustomPowerMenu getAlertPowerMenu(Context context, OnMenuItemClickListener onMenuItemClickListener) { | ||
return new CustomPowerMenu.Builder<>(context, new CenterMenuAdapter()) | ||
.addItem("You need to login!") | ||
.setAnimation(MenuAnimation.ELASTIC_CENTER) | ||
.setMenuRadius(10f) | ||
.setMenuShadow(10f) | ||
.setFocusable(true) | ||
.setOnMenuItemClickListener(onMenuItemClickListener) | ||
.setOnBackgroundClickListener(new View.OnClickListener() { | ||
@Override | ||
public void onClick(View view) { | ||
} | ||
}).build(); | ||
} | ||
|
||
public static CustomPowerMenu getIconPowerMenu(Context context, OnMenuItemClickListener onMenuItemClickListener) { | ||
return new CustomPowerMenu.Builder<>(context, new IconMenuAdapter()) | ||
.addItem(new IconPowerMenuItem(context.getResources().getDrawable(R.drawable.ic_wechat), "WeChat")) | ||
.addItem(new IconPowerMenuItem(context.getResources().getDrawable(R.drawable.ic_facebook), "Facebook")) | ||
.addItem(new IconPowerMenuItem(context.getResources().getDrawable(R.drawable.ic_twitter), "Twitter")) | ||
.addItem(new IconPowerMenuItem(context.getResources().getDrawable(R.drawable.ic_line), "Line")) | ||
.setOnMenuItemClickListener(onMenuItemClickListener) | ||
.setAnimation(MenuAnimation.SHOWUP_TOP_RIGHT) | ||
.setMenuRadius(10f) | ||
.setMenuShadow(10f) | ||
.build(); | ||
} | ||
} |
43 changes: 43 additions & 0 deletions
43
app/src/main/java/com/skydoves/powermenudemo/customs/adapters/CenterMenuAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package com.skydoves.powermenudemo.customs.adapters; | ||
|
||
import android.content.Context; | ||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
import android.widget.TextView; | ||
|
||
import com.skydoves.powermenu.MenuBaseAdapter; | ||
import com.skydoves.powermenudemo.R; | ||
|
||
/** | ||
* Developed by skydoves on 2017-10-28. | ||
* Copyright (c) 2017 skydoves rights reserved. | ||
*/ | ||
|
||
public class CenterMenuAdapter extends MenuBaseAdapter<String> { | ||
|
||
public CenterMenuAdapter() { | ||
super(); | ||
} | ||
|
||
@Override | ||
public View getView(int index, View view, ViewGroup viewGroup) { | ||
final Context context = viewGroup.getContext(); | ||
|
||
if(view == null) { | ||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); | ||
view = inflater.inflate(R.layout.item_title_menu, viewGroup, false); | ||
} | ||
|
||
String item = (String) getItem(index); | ||
final TextView title = view.findViewById(R.id.item_title); | ||
title.setText(item); | ||
title.setTextColor(context.getResources().getColor(R.color.md_grey_800)); | ||
return view; | ||
} | ||
|
||
@Override | ||
public void setSelected(int position) { | ||
notifyDataSetChanged(); | ||
} | ||
} |
Oops, something went wrong.